Git hooks made easy
Husky can prevent bad git commit
, git push
and more 🐶 ❤️ woof!
To all the amazing people who have answered the Husky survey, thanks so much <3 !
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.
npm uninstall husky
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 use any of the files/formats that are supported by cosmiconfig. This means that you can place your husky hooks config in a .huskyrc
file or export them from a husky.config.js
file as well. Cosmiconfig supports .js
, .json
, and .yaml
file formats.
// .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
, ...)
- jQuery
- babel
- create-react-app
- Next.js
- Hyper
- Kibana
- JSON Server
- Hotel
- ... and 25k+ other awesome repos
- 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
- react-fake-props - Fake props for your React tests
MIT
Patreon - Supporters ✨