
프로젝트에서 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
Why is my Git pre-commit hook not executable by default?
If you see the accepted answer in: Aggregating and uglifying JavaScript in a Git pre-commit hook, you'll see that I had to do a chmod +x on my pre-commit hook to get it to work. Why is this not
stackoverflow.com
- husky 설정 단계에 대한 글
https://www.freecodecamp.org/news/how-to-add-commit-hooks-to-git-with-husky-to-automate-code-tasks/
How to Add Commit Hooks to Git with Husky to Automate Code Tasks
There are a lot of tools to automate our code tasks. We can check for syntax issues with ESLint and format our code with Prettier. But not everyone on the team will remember to run those commands every time they commit. How can we use Husky to add Git
www.freecodecamp.org
- husky 설정에 관한 자세한 gabia 문서 (추천한다)
https://library.gabia.com/contents/8492/
가비아 라이브러리
IT 콘텐츠 허브
library.gabia.com
- linux 설정에 관한 자세한 블로그
http://www.incodom.kr/Linux/%EA%B8%B0%EB%B3%B8%EB%AA%85%EB%A0%B9%EC%96%B4/chmod
Linux/기본명령어/chmod - 인코덤, 생물정보 전문위키
#정의
www.incodom.kr
'원두마켓' 카테고리의 다른 글
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 |