- Published on
Lint Automation
자동화
- 린트는 코딩할 때마다 수시로 실행해야 함
- 그러므로, 자동화 구성이 필수로 설정되어야 하는데 git hook을 이용하는 방법과 editor 확장 도구를 이용하는 방법이 있음
- editor를 이용한 부분은 사용자마다 다르므로, 본인 editor 혹은 IDE에서 eslint 확장 도구를 다운 받아서 설정할 것을 권장
Husky를 이용한 검사
- 소스 트래킹 도구인 깃을 사용한면 깃 훅을 보통 사용하는데, 깃 훅을 좀 더 편하게 설정할 수 있는 도구
설치
$ npm install husky
적용
package.json
{
"husky": {
"hooks": {
"pre-commit": "eslint app.js --fix"
}
}
}
- commit 하기전에 해당 eslint를 app.js 파일 한해서 실행하고 자동으로 수정할 수 있는 부분은 수정함
- 포맷팅은 --fix 옵션에 의해서 수정되지만, 코드 품질 파트는 에러를 반환하고 커밋이 실패됨
Lint Stage 패키지 설치
- 특정 파일 및 경로를 대상으로 하는 모든 소스 파일을 lint 검사 진행한다면 굉장히 느려질 수 있음
- 그래서 commit 대상이 되는 파일(js)만 특정화해야하는데 도와주는 도구
설치
$ npm install -D lint-staged
적용
package.json
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.js": "eslint --fix"
}
}
- lint-staged 패키지를다운 받은 후 확장자 패턴을 지정
- husky의 hooks setting도 pre-commit때 lint-staged를 실행할 수 있게 설정
- git staged(변경한 파일) 상태의 js 확장자를 가지는 소스파일에 대해 ESLint가 실행됨
- 이 역시, lint를 통과하지 못한 소스코드는 에러를 내뱉고 커밋이 실패함
Referenced