husky 설치하기

dana·2024년 3월 14일
0

이것저것

목록 보기
3/3

설치

https://typicode.github.io/husky/get-started.html

pnpm 기준

pnpm add --save-dev husky

다음 스크립트를 사용해 기본 셋팅을 간편하게 설정해줍니다.

pnpm exec husky init

스크립트 실행 후, .husky 파일에 pre-commit 스크립트가 생성되고, package.json에 이를 실행하는 prepare 명령어가 추가됩니다.

Hook 추가하기

husky는 hook 실행 전에 로컬 명령어를 실행할 수 있도록 해줍니다. 다음 파일들로부터 명령어를 읽습니다.

  • $XDG_CONFIG_HOME/husky/init.sh
  • ~/.config/husky/init.sh
  • ~/.huskyrc (deprecated)

On Windows: C:\Users\yourusername.config\husky\init.sh

git hook 생략하기

single command

git hook을 생략하기 위해선, -n/--no-verify 옵션을 붙여줍니다.

git commit -m "..." -n # Skips Git hooks

해당 옵션 없이도 생략하도록 하기 위해 HUSKY=0을 설정해줍니다.

HUSKY=0 git ... # Temporarily disables all Git hooks
git ... # Hooks will run again

multiple command

여러 코멘드에서 생략하기 위해선, 시작 전 export HUSKY=0을 선언하고 git 명령어 입력 후 unset HUSKY을 통해 종료해줍니다.

export HUSKY=0 # Disables all Git hooks
git ...
git ...
unset HUSKY # Re-enables hooks

Global

컴퓨터에 기본 설정으로 hook을 사용하게 하지 않기 위해 ~/.config/husky/init.sh 파일에 다음과 같이 설정해줍니다.

# ~/.config/husky/init.sh
export HUSKY=0 # Husky won't install and won't run hooks on your machine

Commit 테스트

Commit을 테스트 하기 위해 실제 커밋이 동작하지 않도록 하는 방법도 있습니다. pre-commit 파일에 exit 1을 넣어주면, commit 명령어를 입력해도 실제 commit이 되지 않습니다.

# .husky/pre-commit

# Your WIP script
# ...

exit 1
git commit -m "testing pre-commit code"
# A commit will not be created

Commitlint 적용하기

https://commitlint.js.org/guides/getting-started.html

pnpm add --save-dev @commitlint/cli @commitlint/config-conventional 

configuration

echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js

husky를 이용해 hook 적용하기

echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg

js로 기본 설치된 config 파일을 내부에서 ts를 사용하고 있는 경우, ts로 변경해주기

profile
PRE-FE에서 PRO-FE로🚀🪐!

0개의 댓글