Git Hooks을 보다 쉽게 적용할 수 있는 npm 모듈로, Git Hooks 에 대해 자세히 알지 못하더라도 commit, push 정책을 관리 및 공유 가능
.husky/ 폴더가 생성되고, 이 과정에서 .git/hooks/ 디렉터리의 훅 파일들이 Husky 를 실행하도록 변경됨git commit 시,
.git/hooks/pre-commit이 실행
이때, .git/hooks/pre-commit 파일은 .husky/pre-commit을 실행하도록 설정되어 있음
.husky/pre-commit 스크립트가 대신 실행
즉, Git이 훅을 실행하면 Husky가 이를 가로채 .husky/ 폴더에 있는 스크립트를 실행하는 방식
yarn
$ yarn add --dev husky
devDependencies에 추가되도록 --dev 옵션 추가npm
$ npm install --save-dev husky
devDependencies에 추가되도록 --save-dev 옵션 추가간단한 설정 (권장)
$ npx husky init
.husky 폴더가 생성되고, pre-commit 훅이 추가됨
*# .husky/pre-commit*
npm test
아래와 같이 package.json에 prepare 스크립트가 자동으로 추가됨
// package.json
{
"scripts": {
"prepare": "husky"
}
}
hook 추가
echo 명령어 사용
echo "yarn lint" > .husky/pre-commit
pre-commit 시 yarn lint가 실행되도록 함*~~npx husky add 명령어 사용~~ (deprecated)*
package.json 파일 수정 (deprecated)
.huskyrc 파일 생성 (deprecated)