Husky - GradedJestRisk/js-training GitHub Wiki
Husky:
- plugs on git hooks
- is configured through package.json, which is easier to share than
.git/hooks/*file - handle subdirectories in single repository (see here)
Steps:
- create a git repository
git init - install module:
npm install husky --save-dev - check it has output
husky > Setting up git hooks- if not, look at
.git/hooks/pre-commit, it should contain. "$(dirname "$0")/husky.sh" - if not, then run
HUSKY_DEBUG=1 npm install husky --save-devand look in husky issues
- if not, look at
- setup a failing hook in
package.json
"devDependencies": {
"husky": "^4.3.0",
},
"husky": {
"hooks": {
"pre-commit": "echo \"this should fail\" && exit 1"
}
}
- create an empty file
touch foo.bar - add to staging
git add foo.bar - try to commit
git commit --allow-empty - it should fail with message
husky > pre-commit (node v10.15.3) this should fail husky > pre-commit hook failed (add --no-verify to bypass)
Add hook on commit for test, add after scripts in package.json
"husky": {
"hooks": {
"pre-commit": "npm test",
"pre-push": "npm test"
}
}
Hook for test and lint: "pre-commit": "npm test && npm run lint"