프로젝트에서 husky가 적용이 안되는 경우 해결법
Lahee
·2022. 4. 16. 01:45
0. 오류 메세지
husky precommit hook is not executed
1. 문제 : 프로젝트에서 husky가 적용이 안되고 커밋이 되고 있었다.
분명 yarn prepare 똑같이 실행시켰음에도, 다른 팀원들은 적용이 되었고 나는 안되는 상황이다. 왜 그런걸까?
문제 해결을 위해, 평소에 한국어로 사용하던 VS를 영어로 변경했다. 왜냐하면 한국어는 에러의 해결책이 잘 안나오기 때문이다.
앞으로도 영어로 쭉 사용할 예정이다. 에러 해결책을 빠르게 찾고 싶다면 영어 사용을 권장한다.
어떻게 설정하는지 모르겠으면, 맥북 기준 command + shift + p 를 누르면 된다. 다음과 같이 검색해서 ko => en으로 바꾸면 된다.
2. 적용이 안된 이유 : 디스크의 권한이 허가되지 않아 husky가 적용이 안되는 상태
원하는 결과는 git add 후에 git commit -m "커밋명" 으로 작성을 할 때, 에러가 있으면 commit 단계에서 막히는 것이었다.
이때 필요한 것은 git과 관련된 이벤트가 발생했을 때 특정 스크립트인 husky가 실행되도록 Git Hooks중 client hook 을 사용하는 것이다. Git Hooks는 .git/hooks 디렉토리 안에 저장해야 하는데, 나의 문제는 여기서 스크립트 파일의 실행권한이 없었던 것이었다.
3. 해결법
해당 프로젝트가 있는 폴더에 가서 다음과 같은 명령어를 치면 된다.
chmod ug+x .husky/*
chmod ug+x .git/hooks/*
chmod : change mode의 축약어
목적 : 대상 파일과 디렉토리 사용 권한을 변경할 때 사용한다.
chmod [옵션] [모드] [파일]
reference(대상) | 의미 |
u | user 권한 (사용자의 권한) |
g | group의 권한 (파일의 그룹 멤버인 사용자의 권한) |
o | other의 권한 ( user, group에 해당하지 않는 사용자의 권한) |
a | all의 권한 (u,g,o를 다 포함한 모든 사용자의 권한) |
operator | 연산자의 의미 |
+ | 해당 권한 추가 |
- | 해당 권한 제거 |
= | 해당 권한을 설정한 것으로 변경 |
modes | 모드 |
r | read (읽기) 권한 |
w | write (쓰기) 권한 |
x | excute (실행) 권한 |
- | 사용권한 없음 |
Linux를 잘 모른다면?
현재 작업하고 있는 VS 터미널에서 다음과 같이 현재 위치를 확인할 수 있다.
// 다음과 같이 폴더의 경로를 확인할 수 있다.
PWD
// 현재 폴더의 하위 디렉터리, 폴더 확인
ls
// 해당 파일로 이동
cd 파일명
// 이전 경로로 이전
cd ..
※ 해당 폴더 이름을 끝까지 치기 귀찮다면 ? 파일의 이름 중 앞 글자를 몇 개 입력하고 "TAB" 키를 누르면 된다.
참고한 사이트
https://stackoverflow.com/questions/8598639/why-is-my-git-pre-commit-hook-not-executable-by-default
- husky 설정 단계에 대한 글
https://www.freecodecamp.org/news/how-to-add-commit-hooks-to-git-with-husky-to-automate-code-tasks/
- husky 설정에 관한 자세한 gabia 문서 (추천한다)
https://library.gabia.com/contents/8492/
- linux 설정에 관한 자세한 블로그
http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/chmod
'원두마켓' 카테고리의 다른 글
mongoose 에러 핸들링 (0) | 2022.04.03 |
---|---|
중간 커밋 병합하기 (0) | 2022.04.02 |
인터페이스 에러 - 사용할 곳에만 들어가도록 조심하자 (0) | 2022.04.01 |
Next.js에서 mongoose 연동해서 API 만들기 (0) | 2022.03.27 |
<input type="number" />에서 leading zero 제거하기 (0) | 2022.03.25 |