esLint, Husky 설치 및 pre-commit 초기 구성은 아래 글 참고
2022.11.11 - [프로젝트/슬랙봇(이제 CI를 곁들인)] - Code Convention Check(ESLint, Husky)
Code Convention Check(ESLint, Husky)
Code Convention Check 장점 여러 사람이 함께 작업하는 코드에 대해 가독성을 높임 유지보수의 용이성 코드 스타일을 동일한 형태로 맞출 수 있음 우리 팀에서는 ESLint를 사용하고 Prettier는 자율적 대
su-mmer.tistory.com
lint-staged 작업
아래의 명령어로 lint-staged를 설치한다.
npm install --save-dev lint-staged
package.json에서 아래처럼 "lint-staged"가 생겼는지 확인하고 사용하고 싶은 파일과 명령어를 적는다.
"lint-staged": {
"*.js": "eslint --fix"
},
// js 외에도 적용시키고 싶으면
"lint-staged": {
"*.{js, ts}": "eslint --fix"
},
pre-commit 파일은 아래와 같이 변경한다.
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
echo "The husky will run automatically."
npx lint-staged
이렇게 하고 commit을 날리면 또로롱 lint-staged가 적용되어야 한다.
그 런 데
lint-staged를 기껏 적용시켰는데 아래 사진과 같이 이상하게 돌아갔다. 전에도 이렇게 돌아가서 이 기능이 제대로 인식되지 않는 줄 알고 빼고 제출했는데 사실 이게 돌아가는 게 맞다...
그렇지만 내가 원한 것은 아래와 같이 깔끔한 사진. 알아보니 이것은 lint-staged 자체의 문제이며 실행되는 것에는 아무 문제가 없다고 한다. 그치만 나는 미관상 깔끔한 걸 원해!
pre-commit에 아래와 같이 exec >/dev/tty 2>&1
을 추가해준다. 이것만 해주면 된다.
가상 터미널(tty)을 실행시켜서 표준에러를 표준출력으로 재지정하여 발생한 에러를 가상 터미널로 버리는 명령인 것 같다.
혹시 제대로 아는 분이 있다면 댓글 바래요.
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
echo "The husky will run automatically."
exec >/dev/tty 2>&1
npx lint-staged
한국어로 도저히 안나와서 영어로 검색했다,ㅎ,ㅎ
참고로 아래와 같이 -q 옵션 사용 시 린트 동작이 백그라운드에서 진행되어 보이지 않게 된다.
npx lint-staged -q
참고
사용중인 git repo
https://github.com/su-mmer/JBNU_OSS_PROJECT
GitHub - su-mmer/JBNU_OSS_PROJECT: 오픈소스 소프트웨어 개발 프로젝트
오픈소스 소프트웨어 개발 프로젝트. Contribute to su-mmer/JBNU_OSS_PROJECT development by creating an account on GitHub.
github.com
참고한 stack overflow
https://stackoverflow.com/questions/72579519/multiple-run-lint-staged-when-use-with-husky
Multiple run lint-staged when use with husky
When I use npx lint-staged in the terminal everything looks ok. For example: PS E:\Projects\sample-project> git status On branch main Your branch is up to date with 'origin/main'. Changes to be
stackoverflow.com
lint-staged의 draft PR
https://github.com/okonet/lint-staged/pull/1163
Force `process.stdout` to be a TTY to support spinners by iiroj · Pull Request #1163 · okonet/lint-staged
github.com