Git hooks란 특정한 사건이 발생했을때 작동하도록 해둔 스크립트를 말합니다. 특정한 사건은 커밋 이전이 될수도 있고 커밋 이후가 될수도있습니다. 이러한 기능은 개발자 특정한 코드를 작동시키거나 자동화시켜 특정한 기준을 적용시킬수 있도록 해줍니다.
Husky는 Git hooks를 쉽게 다룰 수 있도록 해주는 도구입니다. Husky는 우리가 특정한 명령어를 package.json 파일에 있는 객체에 추가하는것 만으로 Husky가 어느 시점에 스크립트를 실행해 줄것입니다.
yarn add husky
혹은
npm install husky
위와 같은 명령어를 터미널에 입력함으로써 Husky를 다운 받을 수 있습니다. Husky를 설치한 이후 package.json 에 다음과 같은 객체 추가해준다면 커밋 이전에 lint staged가 실행되도록 할 수 있습니다.
{
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"pre-push": "npm test"
}
},
"lint-staged": {
"*.js": [
"eslint --fix"
"prettier --write"
]
}
}