[husky] husky를 이용하여 console.log를 막아보자.
◆ 참고
해당 게시글은 시리즈로 이루어져 있습니다.
이전 게시글 프로젝트 설정하는 방법을 보지 않았으면 잘 동작하지 않을 수 있습니다.
이전 게시글 보러가기 : 이동하기
이번 게시글에서는 husky를 이용하여 코드에 console.log가 있는 경우 commit을 막아보자.
pre-commit
pre-commit은 git commit 하기 전 특정 동작(기능)을 할 수 있는 git hook이다.
이것을 이용하여 commit 하기 전에 console.log 함수가 있는 지 확인할 수 있다.
우선 .husky > _ > console-log-check.sh 파일을 생성 해주자.
이제 shell script를 이용하여 commit 한 파일에 console.log 함수가 있는 지 확인을 해야한다.
◆ commit 파일 목록 확인하기
console.log 유무를 확인하기 위해서는 commit 파일 내용을 알아야 한다.
어떻게 하면 commit 할 파일 목록을 얻을 수 있을까?
git 명령어를 사용하면 쉽게 얻어올 수 있다.
명령어 : git diff --cached --name-only --diff-filter=ACMRT
위 명령어를 이용하면 commit을 위해 준비된 파일 이름을 가져올 수 있다.
◆ console.log 확인하기
검색하는 방법도 간단하게 해결할 수 있다.
xargs grep 를 이용하면 된다.
명령어 : xargs grep -i 'console\.log' --with-filename --line-number
위 명령어를 이전 commit 파일 목록 확인하기 명령어에 pipe(|)로 이어주면 된다.
간단하게 설명하면 아래와 같다.
xargs grep : 검색한다
-i : 대소문자 구분 없이
--with-filename : 일치한 파일명
--line-number : 일치한 줄 번호
◆ 최종 스크립트
if git diff --cached --name-only --diff-filter=ACMRT | xargs grep -i 'console\.log' --with-filename --line-number; then
echo "COMMIT REJECTED: Please remove 'console.log' functions."
exit 1
fi
위 스크립트를 console-log-check.sh 에 작성해주면 된다.
◆ 테스트
console.log()
console.info()
console.error()
위 코드를 작성한 후 commit을 해보았다.
그 결과 작성해둔 에러 메시지가 정상적으로 출력되었다.
결과
이렇게 하나 하나씩 팀 단위로 필요한 규칙을 추가하면 된다.
다음 게시글에서는 commit-message 규칙을 적용해보도록 하자.
마지막
틀린 부분이 있다면 댓글로 말씀 부탁드리겠습니다.
'공유 > 기타' 카테고리의 다른 글
[Visual Studio Code] 한글 네모, 한글 노란색 네모 박스 끄기 (0) | 2023.06.13 |
---|---|
[husky] husky를 이용하여 commit-message validation 하기 (0) | 2023.02.23 |
[husky, lint-staged] husky, lint-staged를 이용한 프로젝트 관리 (0) | 2023.02.21 |
[REST API / GRAPHQL] REST API로 graphql 서버에 요청 보내기 (0) | 2022.09.19 |
[VSCode] Organize Imports / import 정리하기 (0) | 2022.01.14 |