1. 설치
npm install -g @lhci/cli
2. 루트 디렉토리에 'lighthouserc.js' 만들기
module.exports = {
ci: {
collect: {
staticDistDir: './build',
// startServerCommand: ''
// url: ['http://localhost:3000/'],
numberOfRuns: 5,
},
upload: {
target: 'temporary-public-storage',
},
},
};
staticDistDir: 정적 파일 경로 지정
startServerCommand: 프로젝트의 웹서버를 실행한다. 하지만 특별한 웹서버를 사용하지 않는 이상 staticDisDir을 이용하는것이 낫다고 한다.
url: 성능을 측정할 url, 배열이기 때문에 여러 url을 지정할 수 있다.
numberOfRuns: lighthouse가 실행되는 횟수 (default: 3)
target:lighthouse ci 가 레포트를 업로드하는 위치
lhci autorun
터미널에 명령어를 치면
성공적으로 lighthouse가 실행됐고 하단에 있는 url에 접속하면 lighthouse 리포트를 볼 수 있다.
name: Lighthouse CI
on:
push:
branches: dev
jobs:
lhci:
name: Lighthouse CI
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Use Node.js 17.3.1
uses: actions/setup-node@v1
with:
node-version: 17.3.1
- name: Install packages
run: |
npm ci
- name: Build
run: |
npm run build
- name: run Lighthouse CI
run: |
npm install -g @lhci/cli
lhci autorun
이제 코드를 푸쉬하면
정상적으로 동작하는걸 볼 수 있다.
점수를 PR창에서 바로 확인 할 수 있는 'GitHub Status Checks'를 추가할 수 있는데 여기에서 LHCI_GITHUB_APP_TOKEN를 발급받고 yml파일에 추가하면 된다.
- name: run Lighthouse CI
run: |
npm install -g @lhci/cli
lhci autorun
env:
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
그리고 푸시를 하면
셋업을 다한다음 pr을 날리고 pr창을 보면 성공은 하지만 저 점수가 나오는 부분이 나타나지않았다. 몇시간동안 원인을 찾아보았고 결국에는 'pull_request'에서는 동작하지 않는다는 원인을 찾았다. Discussion ( 아직 수정이 안된듯.. )
결국 push로 고치고 나서야 제대로 동작하는것을 확인할수 있었다.
on:
push: // pull_request -> push
branches: dev