프로젝트에서 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" 키를 누르면 된다. 

 

참고한 사이트

더보기