*Super saiyan ~~god~~ dog! It's over 9.0.0!*
*There's a bug with this release which prevents the deprecation notice to appear and requires to remove `#!/usr/bin/env sh` and `. "$(dirname -- "$0")/_/husky.sh"` (which are deprecated by the way). I'll publish a new version to fix that. Sorry about any inconvenience.*
### What's new
You can now run package commands directly, no need for `npx` or equivalents.
It makes writing hooks more intuitive and is also slightly faster 🐺⚡️
```diff
### .husky/pre-commit
- npx jest
+ jest # ~0.2s faster
```
A new recipe has been added to the docs. Lint staged files without external dependencies (inspired by Prettier docs). Feel free to modify it.
```shell
### .husky/pre-commit
prettier $(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g') --write --ignore-unknown
git update-index --again
```
For more advanced use cases, see [lint-staged](https://redirect.github.com/lint-staged/lint-staged).
### Fixes
- `bunx husky init` command
- Workaround for some hooks implementation on Windows 🤷
### Deprecations
- Remove `#!/usr/bin/env sh` and `. "$(dirname -- "$0")/_/husky.sh"` from your hooks
- Move your code from `~/.huskyrc` to `.config/husky/init.sh`
Support for these will be removed in v10, notices have been added.
### Friendly reminder
If Git hooks don't fit your workflow, you can disable Husky globally. Just add `export HUSKY=0` to `.config/husky/init.sh`.
I've seen some confusion about this on X, so just a heads-up!
### Sponsoring
Husky is downloaded over 45M times per month and used by ~1.5M projects. If your company wants to sponsor, you can do so here: [GitHub Sponsors](https://redirect.github.com/sponsors/typicode).
**Have a nice summer ☀️ I'm open to new opportunities/consulting so feel free to drop me a message 😉**
### [`v9.0.11`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.11)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.10...v9.0.11)
- chore: update package-lock.json by [@btea](https://redirect.github.com/btea) in [https://github.com/typicode/husky/pull/1383](https://redirect.github.com/typicode/husky/pull/1383)
- fix: husky=0 in init (fixes [#1393](https://redirect.github.com/typicode/husky/issues/1393)) by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1395](https://redirect.github.com/typicode/husky/pull/1395)
### [`v9.0.10`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.10)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.9...v9.0.10)
- fix: rename index.d.ts to index.d.mts by [@mrkjdy](https://redirect.github.com/mrkjdy) in [https://github.com/typicode/husky/pull/1379](https://redirect.github.com/typicode/husky/pull/1379)
### [`v9.0.9`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.9)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.8...v9.0.9)
- refactor: rename files by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1378](https://redirect.github.com/typicode/husky/pull/1378)
### [`v9.0.8`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.8)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.7...v9.0.8)
- docs: update index.md by [@khaledYS](https://redirect.github.com/khaledYS) in [https://github.com/typicode/husky/pull/1369](https://redirect.github.com/typicode/husky/pull/1369)
- Fix tab detection on install command by [@glensc](https://redirect.github.com/glensc) in [https://github.com/typicode/husky/pull/1376](https://redirect.github.com/typicode/husky/pull/1376)
- refactor: reduce file size by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1377](https://redirect.github.com/typicode/husky/pull/1377)
### [`v9.0.7`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.7)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.6...v9.0.7)
- fix: typo and source `~/.huskyrc` correctly (compatibility with v8)
- docs: fix example by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1363](https://redirect.github.com/typicode/husky/pull/1363)
### [`v9.0.6`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.6)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.5...v9.0.6)
- docs: add favicon by [@rakleed](https://redirect.github.com/rakleed) in [https://github.com/typicode/husky/pull/1354](https://redirect.github.com/typicode/husky/pull/1354)
- chore: apply editorconfig to code only by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1355](https://redirect.github.com/typicode/husky/pull/1355)
- docs: update install script to mjs and fix CI checks by [@starnayuta](https://redirect.github.com/starnayuta) in [https://github.com/typicode/husky/pull/1357](https://redirect.github.com/typicode/husky/pull/1357)
- Fix unbound variable by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1359](https://redirect.github.com/typicode/husky/pull/1359)
### [`v9.0.5`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.5)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.4...v9.0.5)
- docs: update path to startup files by [@ManuelRauber](https://redirect.github.com/ManuelRauber) in [https://github.com/typicode/husky/pull/1350](https://redirect.github.com/typicode/husky/pull/1350)
- fix: init error by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1353](https://redirect.github.com/typicode/husky/pull/1353)
### [`v9.0.4`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.4)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.3...v9.0.4)
- fix: init create dir before by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1348](https://redirect.github.com/typicode/husky/pull/1348)
- refactor: simplify by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1349](https://redirect.github.com/typicode/husky/pull/1349)
- fix: init not working on pnpm [#1334](https://redirect.github.com/typicode/husky/issues/1334) by [@rozbo](https://redirect.github.com/rozbo) in [https://github.com/typicode/husky/pull/1347](https://redirect.github.com/typicode/husky/pull/1347)
### [`v9.0.3`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.2...v9.0.3)
- docs: fix link by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1340](https://redirect.github.com/typicode/husky/pull/1340)
- chore: fix links in issue template by [@julien-f](https://redirect.github.com/julien-f) in [https://github.com/typicode/husky/pull/1341](https://redirect.github.com/typicode/husky/pull/1341)
- fix: add scripts field if not present by [@chalkygames123](https://redirect.github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1338](https://redirect.github.com/typicode/husky/pull/1338)
- docs: changelog link by [@typicode](https://redirect.github.com/typicode) in [https://github.com/typicode/husky/pull/1343](https://redirect.github.com/typicode/husky/pull/1343)
- fix: insert final newline by [@chalkygames123](https://redirect.github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1339](https://redirect.github.com/typicode/husky/pull/1339)
- fix: fix git hooks path on windows by [@rozbo](https://redirect.github.com/rozbo) in [https://github.com/typicode/husky/pull/1346](https://redirect.github.com/typicode/husky/pull/1346)
### [`v9.0.2`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.1...v9.0.2)
#### What's Changed
- fix: exit code by [@gergelypap](https://redirect.github.com/gergelypap) in [https://github.com/typicode/husky/pull/1336](https://redirect.github.com/typicode/husky/pull/1336)
- docs: typo by [@chalkygames123](https://redirect.github.com/chalkygames123) in [https://github.com/typicode/husky/pull/1337](https://redirect.github.com/typicode/husky/pull/1337)
#### New Contributors
- [@gergelypap](https://redirect.github.com/gergelypap) made their first contribution in [https://github.com/typicode/husky/pull/1336](https://redirect.github.com/typicode/husky/pull/1336)
**Full Changelog**: https://github.com/typicode/husky/compare/v9.0.1...v9.0.2
### [`v9.0.1`](https://redirect.github.com/typicode/husky/releases/tag/v9.0.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v8.0.3...v9.0.1)
Kicking off the year with an exciting update!
#### TLDR;
Improved user experience and a (even) smaller package size while packing in more features!
#### 👋 By the Way
**I'm available for remote work** (Front-end/Back-end mainly JS/TS but open to other stacks Rails, Go, Elixir). You can contact me at my mail: typicode at gmail :slightly_smiling_face:
#### Introducing `husky init`
Adding husky to a project is now easier than ever. Although the installation process was straightforward, it often required consulting the documentation.
##### v8
```shell
npm pkg set scripts.prepare="husky install"
npm run prepare
npx husky add .husky/pre-commit "npm test"
```
##### v9
```shell
npx husky init
```
#### Adding a New Hook
Adding a hook is now as simple as creating a file. This can be accomplished using your favorite editor, a script or a basic `echo` command.
##### v8
```shell
npx husky add .husky/pre-commit "npm test"
git add --chmod=+x .husky/pre-commit # On Windows
```
##### v9
```shell
echo "npm test" > .husky/pre-commit
```
#### Further Size Reduction
`v8` was already the most compact Git hooks manager at approximately `6kB`.
`v9` takes this a step further, reducing the size to just `3kB`, likely making it the smallest devDependency in your toolkit.
**To give you an idea of how small it is, the biggest file in the project is the MIT license 😄**
#### More to Come
Additional features are in the pipeline for `v9`. Stay tuned :raised_hands:
#### Other Changes
- **Enhanced security** with CI and npm `--provenance` for safer publishing.
- Added **`$XDG_CONFIG_HOME`** support. Move `~/.huskyrc` to `~/.config/husky/init.sh` for centralized configuration.
- **Fixed permission issue for Windows-created hooks**; they no longer need to be executable.
- Removed `husky install`. Use `husky` or `husky some/dir` for the same functionality (deprecation notice to be added).
- Modified behavior when `.git` is missing; it now triggers a warning instead of failure.
- Replaced `HUSKY_DEBUG=1` with `HUSKY=2` for debugging.
- Updated the Husky API for module usage.
- Transitioned to `ESM` for module usage.
- Dropped support for Node 14 and 16.
- Revamped docs.
#### How to Migrate
`v9` is backward compatible with `v8`, allowing you to freely upgrade and migrate your hooks later.
`package.json`
```diff
{
"scripts": {
- "prepare": "husky install"
+ "prepare": "husky"
}
}
```
`.husky/pre-commit`
```diff
- #!/usr/bin/env sh
- . "$(dirname -- "$0")/_/husky.sh"
npm test
```
### [`v8.0.3`](https://redirect.github.com/typicode/husky/releases/tag/v8.0.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v8.0.2...v8.0.3)
- fix: add git not installed message [#1208](https://redirect.github.com/typicode/husky/issues/1208)
### [`v8.0.2`](https://redirect.github.com/typicode/husky/releases/tag/v8.0.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v8.0.1...v8.0.2)
- docs: remove deprecated npm set-script
### [`v8.0.1`](https://redirect.github.com/typicode/husky/releases/tag/v8.0.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v8.0.0...v8.0.1)
- fix: use POSIX equality operator
### [`v8.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v8.0.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v7.0.4...v8.0.0)
#### What's Changed
##### Feats
- feat: add `husky -` prefix to logged global error messages by [@joshbalfour](https://redirect.github.com/joshbalfour) in [https://github.com/typicode/husky/pull/1092](https://redirect.github.com/typicode/husky/pull/1092)
- feat: show `PATH` when command not found to improve debuggability
- feat: drop Node 12 support
- feat: skip install if `$HUSKY=0`
##### Fixes
- fix: hook script use `/usr/bin/env sh` instead of direct path of `sh` by [@skhaz](https://redirect.github.com/skhaz) in [https://github.com/typicode/husky/pull/1051](https://redirect.github.com/typicode/husky/pull/1051)
- fix: actually set 'husky_skip_init' as readonly in `./husky.sh` by [@hyperupcall](https://redirect.github.com/hyperupcall) in [https://github.com/typicode/husky/pull/1104](https://redirect.github.com/typicode/husky/pull/1104)
- fix: force `basename`/`dirname` to treat `$0` as an argument by [@mataha](https://redirect.github.com/mataha) in [https://github.com/typicode/husky/pull/1132](https://redirect.github.com/typicode/husky/pull/1132)
- fix: remove `git.io` links by [@renbaoshuo](https://redirect.github.com/renbaoshuo) in [https://github.com/typicode/husky/pull/1136](https://redirect.github.com/typicode/husky/pull/1136)
##### Docs
- docs: fix uninstall via npm by [@pddpd](https://redirect.github.com/pddpd) in [https://github.com/typicode/husky/pull/1033](https://redirect.github.com/typicode/husky/pull/1033)
- docs: add dog emoji as favicon by [@jamiehaywood](https://redirect.github.com/jamiehaywood) in [https://github.com/typicode/husky/pull/1095](https://redirect.github.com/typicode/husky/pull/1095)
- docs: replace deprecated `npx --no-install` option with `npx --no` by [@sibiraj-s](https://redirect.github.com/sibiraj-s) in [https://github.com/typicode/husky/pull/1070](https://redirect.github.com/typicode/husky/pull/1070)
- docs: add `pnpm` installation by [@MohamadKh75](https://redirect.github.com/MohamadKh75) in [https://github.com/typicode/husky/pull/1139](https://redirect.github.com/typicode/husky/pull/1139)
##### Chore
- chore: update workflows by [@tiziodcaio](https://redirect.github.com/tiziodcaio) in [https://github.com/typicode/husky/pull/1125](https://redirect.github.com/typicode/husky/pull/1125)
### [`v7.0.4`](https://redirect.github.com/typicode/husky/releases/tag/v7.0.4)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v7.0.3...v7.0.4)
*No changes. Husky v7.0.3 was reverted, this version is the same as v7.0.2.*
### [`v7.0.3`](https://redirect.github.com/typicode/husky/compare/v7.0.2...v7.0.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v7.0.2...v7.0.3)
### [`v7.0.2`](https://redirect.github.com/typicode/husky/releases/tag/v7.0.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v7.0.1...v7.0.2)
Fix pre-commit hook in WebStorm ([#1023](https://redirect.github.com/typicode/husky/issues/1023))
### [`v7.0.1`](https://redirect.github.com/typicode/husky/releases/tag/v7.0.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v7.0.0...v7.0.1)
- Fix gracefully fail if Git command is not found [#1003](https://redirect.github.com/typicode/husky/issues/1003) (same as in v6)
### [`v7.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v7.0.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v6.0.0...v7.0.0)
- Improve `.husky/` directory structure. **`.husky/.gitignore` is now unnecessary and can be removed**.
- Improve error output (shorter)
- Update [`husky-init`](https://redirect.github.com/typicode/husky-init) CLI
- Update [`husky-4-to-7`](https://redirect.github.com/typicode/husky-4-to-7) CLI
- Drop Node 10 support
*Please help me develop and release OSS projects :heart: on [GitHub Sponsors](https://redirect.github.com/sponsors/typicode) or [Open Collective](https://opencollective.com/husky). Thank you for your support!*
### [`v6.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v6.0.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.2.0...v6.0.0)
After being in early access for Open Source projects and Sponsors for a limited time, **I'm happy to announce that husky 6 is MIT again** and can be freely used in commercial projects! 🎉
**Many thanks to the [Open Source projects](https://typicode.github.io/husky/#/?id=used-by) and Companies which have switched to/sponsored the new husky during this period!**
*OSS is my full-time job, please consider sponsoring the development of husky on [GitHub sponsors](https://redirect.github.com/sponsors/typicode) or [Open Collective](https://opencollective.com/husky). Thank you!*
### Breaking change
- `husky init` has been moved to its own package (`npx husky-init`)
### Added
- Programmatically use husky: `require('husky')`
- TypeScript definitions
### Migrating from husky 4
Husky 6 contains breaking changes. If you're coming from v4, `npm install husky@6` won't be enough.
**Recommended:** see [husky-4-to-6](https://typicode.github.io/husky/#/?id=husky-4-to-6-cli) CLI to automatically migrate your config. There's also a dedicated section in the [docs](https://typicode.github.io/husky/#/?id=migrate-from-v4-to-v6).
**If you're curious why config has changed, you may be interested in reading:**
https://blog.typicode.com/husky-git-hooks-javascript-config/
**Also Husky 6 follows official [npm](https://docs.npmjs.com/cli/v7/using-npm/scripts#best-practices) and [Yarn](https://yarnpkg.com/advanced/lifecycle-scripts#a-note-about-postinstall) best practices regarding autoinstall.** It's recommended to use `prepare` script instead (see [usage](https://typicode.github.io/husky/#/?id=usage) in docs).
### [`v5.2.0`](https://redirect.github.com/typicode/husky/releases/tag/v5.2.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.1.3...v5.2.0)
- Add `set` command to replace hooks (`husky set .husky/pre-commit cmd`)
- Update `add` command to append command (`husky add .husky/pre-commit cmd`)
- Improve error messages
### [`v5.1.3`](https://redirect.github.com/typicode/husky/releases/tag/v5.1.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.1.2...v5.1.3)
- docs: add specific Yarn v2 install/uninstall instructions
- cli: `husky init` will detect Yarn v2 and initialize accordingly
### [`v5.1.2`](https://redirect.github.com/typicode/husky/releases/tag/v5.1.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.1.1...v5.1.2)
- docs: recommend `prepare` script instead of `postinstall` ([#890](https://redirect.github.com/typicode/husky/issues/890))
- cli: `husky init` use `prepare` script ([#890](https://redirect.github.com/typicode/husky/issues/890))
### [`v5.1.1`](https://redirect.github.com/typicode/husky/releases/tag/v5.1.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.1.0...v5.1.1)
- style(shell): add trailing newlines ([#870](https://redirect.github.com/typicode/husky/issues/870))
- fix(init): update package.json postinstall
### [`v5.1.0`](https://redirect.github.com/typicode/husky/releases/tag/v5.1.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.9...v5.1.0)
- Add `husky init`
### [`v5.0.9`](https://redirect.github.com/typicode/husky/releases/tag/v5.0.9)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.8...v5.0.9)
- fix(install): do not fail if not inside a Git directory (closes [#851](https://redirect.github.com/typicode/husky/issues/851))
See https://github.com/typicode/husky/releases/tag/v5.0.0 for v5 release notes
### [`v5.0.8`](https://redirect.github.com/typicode/husky/releases/tag/v5.0.8)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.7...v5.0.8)
- fix(install): better handle Git <2.9 ([#846](https://redirect.github.com/typicode/husky/issues/846)) closes [#844](https://redirect.github.com/typicode/husky/issues/844)
### [`v5.0.7`](https://redirect.github.com/typicode/husky/releases/tag/v5.0.7)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.6...v5.0.7)
- fix(shell): double quote params ([#824](https://redirect.github.com/typicode/husky/issues/824))
### [`v5.0.6`](https://redirect.github.com/typicode/husky/releases/tag/v5.0.6)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.5...v5.0.6)
- Remove unused files
### [`v5.0.5`](https://redirect.github.com/typicode/husky/releases/tag/v5.0.5)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.4...v5.0.5)
- Fix custom directory support [#827](https://redirect.github.com/typicode/husky/issues/827)
### [`v5.0.4`](https://redirect.github.com/typicode/husky/compare/v5.0.3...v5.0.4)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.3...v5.0.4)
### [`v5.0.3`](https://redirect.github.com/typicode/husky/compare/v5.0.2...v5.0.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.2...v5.0.3)
### [`v5.0.2`](https://redirect.github.com/typicode/husky/compare/v5.0.1...v5.0.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.1...v5.0.2)
### [`v5.0.1`](https://redirect.github.com/typicode/husky/compare/v5.0.0...v5.0.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v5.0.0...v5.0.1)
### [`v5.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v5.0.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.8...v5.0.0)
👉 See https://typicode.github.io/husky for breaking changes and new installation instructions.
#### Note about the license
Husky 5 is released under The Parity Public License.
It doesn't affect you if you're using husky in an Open Source project or if you're a sponsor. You're free to use it as usual and I hope you'll enjoy this new release ❤️
If you're using husky in a commercial project, you may want to consider becoming a sponsor to support the project. You can also try it for 30 days.
**This is only for a limited time, husky will be MIT again later.**
#### Migrating
**Important** Husky v5 brings a lot of improvements but is also very different from v4. Git hooks won't work if you only upgrade husky dependency, existing config needs to be migrated too.
The best way to switch to v5 is to follow the new installation instructions and migrate existing hooks command using `husky add`.
### [`v4.3.8`](https://redirect.github.com/typicode/husky/releases/tag/v4.3.8)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.7...v4.3.8)
- Fix `Cannot read property 'toString' of null`
- Improve error messages
### [`v4.3.7`](https://redirect.github.com/typicode/husky/releases/tag/v4.3.7)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.6...v4.3.7)
- Fix: upgrade find-versions to 4.0.0 [https://github.com/typicode/husky/pull/837](https://redirect.github.com/typicode/husky/pull/837)
### [`v4.3.6`](https://redirect.github.com/typicode/husky/releases/tag/v4.3.6)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.5...v4.3.6)
- Fix `prepare-commit-msg` on windows [#737](https://redirect.github.com/typicode/husky/issues/737)
### [`v4.3.5`](https://redirect.github.com/typicode/husky/releases/tag/v4.3.5)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.4...v4.3.5)
- Rollback and do not throw error if husky install fails
### [`v4.3.4`](https://redirect.github.com/typicode/husky/releases/tag/v4.3.4)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.3...v4.3.4)
- Throw error if husky install fails
- Add workaround for npm 7 currently missing `INIT_CWD` environment variable
### [`v4.3.3`](https://redirect.github.com/typicode/husky/compare/v4.3.2...v4.3.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.2...v4.3.3)
### [`v4.3.2`](https://redirect.github.com/typicode/husky/compare/v4.3.1...v4.3.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.1...v4.3.2)
### [`v4.3.1`](https://redirect.github.com/typicode/husky/compare/v4.3.0...v4.3.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.3.0...v4.3.1)
### [`v4.3.0`](https://redirect.github.com/typicode/husky/releases/tag/v4.3.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.2.5...v4.3.0)
- Add `.cjs` config file support [#754](https://redirect.github.com/typicode/husky/issues/754)
### [`v4.2.5`](https://redirect.github.com/typicode/husky/releases/tag/v4.2.5)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.2.4...v4.2.5)
- Fix wrong error message [#709](https://redirect.github.com/typicode/husky/issues/709)
- Update dependencies [#710](https://redirect.github.com/typicode/husky/issues/710)
### [`v4.2.4`](https://redirect.github.com/typicode/husky/releases/tag/v4.2.4)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.2.3...v4.2.4)
- When Node version is unsupported, log actual version in addition to the error message [#701](https://redirect.github.com/typicode/husky/issues/701)
- Fix: support `cnpm` package manager [#687](https://redirect.github.com/typicode/husky/issues/687)
- Fix: always use `sh` to run scripts and avoid inconsistencies [#707](https://redirect.github.com/typicode/husky/issues/707)
- Fix: don't throw error if files are already removed during uninstall [#708](https://redirect.github.com/typicode/husky/issues/708)
### [`v4.2.3`](https://redirect.github.com/typicode/husky/releases/tag/v4.2.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.2.2...v4.2.3)
- Fix: check for `husky.config.js` not `.huskyrc.config.js` [#669](https://redirect.github.com/typicode/husky/issues/669)
### [`v4.2.2`](https://redirect.github.com/typicode/husky/releases/tag/v4.2.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.2.1...v4.2.2)
- Fix [#662](https://redirect.github.com/typicode/husky/issues/662) disable fast-skip heuristic for `.husky.js` and `.husky.config.js`
- Fix do not install `update`, `pre/post-receive` hooks
### [`v4.2.1`](https://redirect.github.com/typicode/husky/releases/tag/v4.2.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.2.0...v4.2.1)
- Fix: support spaces in path to husky.local.sh [#658](https://redirect.github.com/typicode/husky/issues/658)
### [`v4.2.0`](https://redirect.github.com/typicode/husky/releases/tag/v4.2.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.1.0...v4.2.0)
- Check Git version during install and log an error if it's `<2.13.0`
### [`v4.1.0`](https://redirect.github.com/typicode/husky/releases/tag/v4.1.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.10...v4.1.0)
- Improve speed and refactor hooks
### [`v4.0.10`](https://redirect.github.com/typicode/husky/compare/v4.0.9...v4.0.10)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.9...v4.0.10)
### [`v4.0.9`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.9)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.8...v4.0.9)
- Fix: read stdin from hook script ([#645](https://redirect.github.com/typicode/husky/issues/645))
### [`v4.0.8`](https://redirect.github.com/typicode/husky/compare/v4.0.7...v4.0.8)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.7...v4.0.8)
### [`v4.0.7`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.7)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.6...v4.0.7)
- Fix: Yarn when running inside `winpty` ([#634](https://redirect.github.com/typicode/husky/issues/634))
### [`v4.0.6`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.6)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.5...v4.0.6)
- Revert change in v4.0.5
### [`v4.0.5`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.5)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.4...v4.0.5)
- Fix: use process.exit if install fails [#633](https://redirect.github.com/typicode/husky/issues/633)
### [`v4.0.4`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.4)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.3...v4.0.4)
- Fix: npm ignore `.eslintrc.js` ([#627](https://redirect.github.com/typicode/husky/issues/627))
### [`v4.0.3`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.2...v4.0.3)
- Fix: error message if trying to install in a non-git repo ([#627](https://redirect.github.com/typicode/husky/issues/627))
### [`v4.0.2`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.1...v4.0.2)
- Fix: show error message when hook fails
### [`v4.0.1`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v4.0.0...v4.0.1)
- Fix: make Yarn silent. When Husky was installed with Yarn 1.21.1, hooks output was too verbose ([#626](https://redirect.github.com/typicode/husky/issues/626)).
### [`v4.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v4.0.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.1.0...v4.0.0)
- Support `Yarn v2` new Plug'n'Play feature (thanks to [@arcanis](https://redirect.github.com/arcanis))
- Improve path handling on Windows (in particular with `Cygwin` and `Cmdr`)
- Remove `dependencies` and simplify code
- **Breaking** requires `Node 10+`
**Thanks to all contributors and everyone who is supporting Husky on [Open Collective](https://opencollective.com/husky), [GitHub sponsors](https://redirect.github.com/sponsors/typicode) and [Patreon](https://www.patreon.com/typicode)!**
### [`v3.1.0`](https://redirect.github.com/typicode/husky/releases/tag/v3.1.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.9...v3.1.0)
- Add `pre-merge-commit` hook ([#605](https://redirect.github.com/typicode/husky/issues/605))
### [`v3.0.9`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.9)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.8...v3.0.9)
- Reduce dependencies: replace `is-ci` with `ci-info` [#579](https://redirect.github.com/typicode/husky/issues/579)
### [`v3.0.8`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.8)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.7...v3.0.8)
- Fix: git worktree support [#580](https://redirect.github.com/typicode/husky/issues/580)
- Debug: check `GIT_DIR` environment variable when hooks are run
### [`v3.0.7`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.7)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.6...v3.0.7)
Debug: display husky version and created at
### [`v3.0.6`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.6)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.5...v3.0.6)
Debug: improve messages
### [`v3.0.5`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.5)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.4...v3.0.5)
Fix: prevent `postinstall` from failing on windows [https://github.com/typicode/husky/pull/573](https://redirect.github.com/typicode/husky/pull/573)
### [`v3.0.4`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.4)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.3...v3.0.4)
Fix: skip install earlier when `HUSKY_SKIP_INSTALL=1` ([https://github.com/typicode/husky/issues/563](https://redirect.github.com/typicode/husky/issues/563))
### [`v3.0.3`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.3)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.2...v3.0.3)
Fix: prevent old hooks (husky `< 1.0`) to be run if new ones are defined (husky `>= 1.0` ) [https://github.com/typicode/husky/issues/556](https://redirect.github.com/typicode/husky/issues/556)
### [`v3.0.2`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.2)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.1...v3.0.2)
- Fix: add shebang to run.js ([#528](https://redirect.github.com/typicode/husky/issues/528))
### [`v3.0.1`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v3.0.0...v3.0.1)
- Improve error message if git command fails
### [`v3.0.0`](https://redirect.github.com/typicode/husky/releases/tag/v3.0.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/df97af21254ca033a05346df3deb61c046b9ea12...v3.0.0)
- Fix HUSKY_SKIP_INSTALL=1 not skipping install
- **Breaking change** husky requires now Git `>= 2.13.2`. If you're already using husky `v2` and don't use an old version of Git, you can safely upgrade.
### [`v2.7.0`](https://redirect.github.com/typicode/husky/compare/v2.6.0...df97af21254ca033a05346df3deb61c046b9ea12)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v2.6.0...df97af21254ca033a05346df3deb61c046b9ea12)
### [`v2.6.0`](https://redirect.github.com/typicode/husky/compare/v2.5.0...v2.6.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v2.5.0...v2.6.0)
### [`v2.5.0`](https://redirect.github.com/typicode/husky/compare/v2.4.1...v2.5.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v2.4.1...v2.5.0)
### [`v2.4.1`](https://redirect.github.com/typicode/husky/compare/v2.4.0...v2.4.1)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v2.4.0...v2.4.1)
### [`v2.4.0`](https://redirect.github.com/typicode/husky/compare/v2.3.0...v2.4.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v2.3.0...v2.4.0)
### [`v2.3.0`](https://redirect.github.com/typicode/husky/compare/v2.2.0...v2.3.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v2.2.0...v2.3.0)
### [`v2.2.0`](https://redirect.github.com/typicode/husky/compare/v2.1.0...v2.2.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v2.1.0...v2.2.0)
### [`v2.1.0`](https://redirect.github.com/typicode/husky/compare/v2.0.0...v2.1.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v2.0.0...v2.1.0)
### [`v2.0.0`](https://redirect.github.com/typicode/husky/compare/v1.3.1...v2.0.0)
[Compare Source](https://redirect.github.com/typicode/husky/compare/v1.3.1...v2.0.0)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
1.3.1
->9.1.7
Release Notes
typicode/husky (husky)
### [`v9.1.7`](https://redirect.github.com/typicode/husky/compare/v9.1.6...799e84b716d0e03db80db5d5b0dcdd15b9d555fc) [Compare Source](https://redirect.github.com/typicode/husky/compare/v9.1.6...v9.1.7) ### [`v9.1.6`](https://redirect.github.com/typicode/husky/compare/v9.1.5...a2d942a670b3d6a04578005a0fd2dc310e511849) [Compare Source](https://redirect.github.com/typicode/husky/compare/v9.1.5...v9.1.6) ### [`v9.1.5`](https://redirect.github.com/typicode/husky/compare/v9.1.4...2fee8d212c601942ad146ea9209f15c20a07fb6d) [Compare Source](https://redirect.github.com/typicode/husky/compare/v9.1.4...v9.1.5) ### [`v9.1.4`](https://redirect.github.com/typicode/husky/compare/v9.1.3...fc549e0e5c8723a6d796f6ad26ef6590769f5d82) [Compare Source](https://redirect.github.com/typicode/husky/compare/v9.1.3...v9.1.4) ### [`v9.1.3`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.3) [Compare Source](https://redirect.github.com/typicode/husky/compare/v9.1.2...v9.1.3) - fix: better handle space in `PATH` ### [`v9.1.2`](https://redirect.github.com/typicode/husky/compare/v9.1.1...v9.1.2) [Compare Source](https://redirect.github.com/typicode/husky/compare/v9.1.1...v9.1.2) ### [`v9.1.1`](https://redirect.github.com/typicode/husky/compare/v9.1.0...2968998755465f69069f297b5bb603e26d6b1772) [Compare Source](https://redirect.github.com/typicode/husky/compare/v9.1.0...v9.1.1) ### [`v9.1.0`](https://redirect.github.com/typicode/husky/releases/tag/v9.1.0) [Compare Source](https://redirect.github.com/typicode/husky/compare/v9.0.11...v9.1.0)Kicking off the year with an exciting update!
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.