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)