mirror of
https://github.com/actions/setup-node.git
synced 2025-04-08 13:15:38 +08:00
125 lines
3.3 KiB
Markdown
125 lines
3.3 KiB
Markdown
# husky
|
|
|
|
> Git hooks made easy
|
|
|
|
[](https://www.npmjs.org/package/husky) [](https://travis-ci.org/typicode/husky) [](https://ci.appveyor.com/project/typicode/husky)
|
|
|
|
Husky can prevent bad `git commit`, `git push` and more 🐶 _woof!_
|
|
|
|
## Support
|
|
|
|
If Husky is saving you (or your team) time, please consider supporting it on Patreon 👍 thank you!
|
|
|
|
<p>
|
|
<a href="https://www.patreon.com/bePatron?c=784328">
|
|
<img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" width="160">
|
|
</a>
|
|
</p>
|
|
|
|
## Sponsors
|
|
|
|
<p>
|
|
<a href="https://patreon.com/typicode">Support Husky and be the first to have your company logo here ;)</a>
|
|
</p>
|
|
|
|
## Install
|
|
|
|
```sh
|
|
npm install husky --save-dev
|
|
```
|
|
|
|
```js
|
|
// package.json
|
|
{
|
|
"husky": {
|
|
"hooks": {
|
|
"pre-commit": "npm test",
|
|
"pre-push": "npm test",
|
|
"...": "..."
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
```sh
|
|
git commit -m 'Keep calm and commit'
|
|
```
|
|
|
|
To go further, see the docs [here](https://github.com/typicode/husky/blob/master/DOCS.md).
|
|
|
|
__Note__: there's a known issue with Node `v12.0`, please use `v12.1` or higher.
|
|
|
|
## Uninstall
|
|
|
|
```sh
|
|
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`.
|
|
|
|
```diff
|
|
{
|
|
"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.
|
|
|
|
```js
|
|
// .huskyrc
|
|
{
|
|
"hooks": {
|
|
"pre-commit": "npm test"
|
|
}
|
|
}
|
|
```
|
|
|
|
To view the full list of changes, please see the [CHANGELOG](https://github.com/typicode/husky/blob/master/CHANGELOG.md).
|
|
|
|
## Features
|
|
|
|
* Keeps existing user hooks
|
|
* Supports GUI Git clients
|
|
* Supports all Git hooks (`pre-commit`, `pre-push`, ...)
|
|
|
|
## Used by
|
|
|
|
* [jQuery](https://github.com/jquery/jquery)
|
|
* [babel](https://github.com/babel/babel)
|
|
* [create-react-app](https://github.com/facebookincubator/create-react-app)
|
|
* [Next.js](https://github.com/zeit/next.js)
|
|
* [Hyper](https://github.com/zeit/hyper)
|
|
* [Kibana](https://github.com/elastic/kibana)
|
|
* [JSON Server](https://github.com/typicode/json-server)
|
|
* [Hotel](https://github.com/typicode/hotel)
|
|
* ... and 28k+ [other awesome repos](https://libraries.io/npm/husky/dependent-repositories)
|
|
|
|
## See also
|
|
|
|
* [pkg-ok](https://github.com/typicode/pkg-ok) - Prevents publishing a module with bad paths or incorrect line endings
|
|
* [please-upgrade-node](https://github.com/typicode/please-upgrade-node) - Show a message to upgrade Node instead of a stacktrace in your CLIs
|
|
* [pinst](https://github.com/typicode/pinst) - dev only postinstall hook
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
[Patreon](https://www.patreon.com/typicode) - [Supporters](https://thanks.typicode.com) ✨
|