What's new in husky 5
Tags: git, npm, node, javascript
Published: 2021-02-04 12:47:09

**I'm happy to announce the release of husky 5** 🎉 🐺 _woof!_

During the past years, husky has grown in complexity. With this version, I wanted to go back to something **simpler**, **more flexible** and **closer to the metal**. 

You can use husky 5 in your Open Source projects today.

Thanks for your support and feedback. I hope you'll enjoy this release <3

https://github.com/typicode/husky

## Faster and smaller

Husky 5 is closer to Git and has a lot less abstractions. It makes it not only simpler to understand but also very fast and small with zero dependencies.

Time spent to run a simple `echo "hello world"` pre-commit hook:

```
husky 4: ~0.50s
husky 5: ~0.01s
```

Installation size with dependencies:

```
husky 4: ~1.00MB with 47 packages
husky 5: ~0.02MB with  0 packages
```

## Optional install

With husky 4, hooks were automatically installed. With husky 5, you have the choice and it's explicit.

You can keep the previous behaviour (**recommended**) by adding a `postinstall` script:

```json
// package.json
{
  "private": true,
  "scripts": {
    "postinstall": "husky install"
  }
}
```

If you prefer to manually install husky, omit the above `postinstall` script and just run in your terminal:

```shell
# Manual install
$ npx husky install
$ yarn husky install
```

## Config

Previously, hooks were defined in `package.json` or `.huskyrc`. Now they're defined directly in their corresponding hook file. Overhead is reduced and scripting is easier.

```shell
# .husky/pre-commit
# ...
yarn lint-staged
```

They can also be put in any subdirectory. For example in `.config`:

```shell
# .config/husky/pre-commit
$ husky install .config/husky
$ husky add .config/husky/pre-commit "npm test"
```

## How to migrate

A new doc site has been created with a dedicated section to migrating hooks from husky 4 to 5:

https://typicode.github.io/husky

If you have many projects using husky 4, you can use `husky-4-to-5` CLI to do it automatically:

https://github.com/typicode/husky-4-to-5

_There are some caveats so just copying your previous config may not work._

## License

For a limited time, husky 5 will be released under License Zero's [Parity License](https://paritylicense.com/). It will be MIT again later.

### Free for Open Source ❤️

The Parity License is an Open Source friendly license.

So if you're using husky in an Open Source project, this new license doesn't affect you.

**You're free to use husky 5 today and I'm glad if it can help you in your day to day work.**

### Early access for Sponsors 🎁

If you're using husky in a commercial project, your support would be extremely helpful (husky 5 is free to try for 30 days).

That said, if your company can't or don't want to sponsor, that's perfectly fine too. Husky 4 remains free to use in any project and will continue to receive maintainance updates.

You can become a sponsor on [GitHub Sponsors](https://github.com/sponsors/typicode) or [Open Collective](https://opencollective.com/husky).

## Thanks

**Thanks to everyone who has sponsored me, I'm sincerely grateful!**

I also have other ideas for husky and projects. If you're a sponsor, you'll be the first to know about them :)

https://github.com/typicode/husky

_Photo by [Andriyko Podilnyk](https://unsplash.com/@yirage) on [unsplash](https://unsplash.com)_