.. | ||
.github | ||
lib | ||
.eslintrc.js | ||
.prettierrc | ||
CHANGELOG.md | ||
DOCS.md | ||
husky.js | ||
LICENSE | ||
package.json | ||
README.md | ||
run.js |
husky
Git hooks made easy
Husky can prevent bad git commit
, git push
and more 🐶 woof!
Sponsors
Support Husky on Open Collective and have your company logo here (starts from $100/m)
Visit thanks.typicode.com 🌵 to view all the people supporting husky.
Install
npm install husky --save-dev
// package.json
{
"husky": {
"hooks": {
"pre-commit": "npm test",
"pre-push": "npm test",
"...": "..."
}
}
}
git commit -m 'Keep calm and commit'
To go further, see the docs here.
Note: there's a known issue with Node v12.0
, please use v12.1
or higher.
Uninstall
npm uninstall husky
Upgrading from 0.14
Simply move your existing hooks to husky.hooks
field and use raw Git hooks names. Also, if you're using the GIT_PARAMS
env variable, rename it to HUSKY_GIT_PARAMS
.
{
"scripts": {
- "precommit": "npm test",
- "commitmsg": "commitlint -E GIT_PARAMS"
},
+ "husky": {
+ "hooks": {
+ "pre-commit": "npm test",
+ "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
+ }
+ }
}
Alternatively, you can run the following command which will do the same automatically for you ;)
./node_modules/.bin/husky-upgrade
Starting with 1.0.0
, you can also configure hooks using .huskyrc
, .huskyrc.json
or .huskyrc.js
file.
// .huskyrc
{
"hooks": {
"pre-commit": "npm test"
}
}
To view the full list of changes, please see the CHANGELOG.
Features
- Keeps existing user hooks
- Supports GUI Git clients
- Supports all Git hooks (
pre-commit
,pre-push
, ...)
Used by
- jQuery
- babel
- create-react-app
- Next.js
- Hyper
- Kibana
- JSON Server
- Hotel
- ... and many other awesome projects
See also
- pkg-ok - Prevents publishing a module with bad paths or incorrect line endings
- please-upgrade-node - Show a message to upgrade Node instead of a stacktrace in your CLIs
- pinst - dev only postinstall hook
License
MIT