Announcement: Husky is on Open Collective 🎉
Git hooks made easy
Husky can prevent bad git commit
, git push
and more 🐶 woof!
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.
npm uninstall husky
Git hooks installed by husky will be removed.
Become a financial contributor and help us sustain our community. [Contribute]
Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]
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.
- Keeps existing user hooks
- Supports GUI Git clients
- Supports all Git hooks (
pre-commit
,pre-push
, ...)
- webpack
- babel
- create-react-app
- Next.js
- Hyper
- Kibana
- JSON Server
- Hotel
- ... and many other awesome projects
- 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
People and companies supporting via Patreon: thanks
MIT