Migrate husky 4 to 7


TL;DR: migrate husky from 4 to 7:

npx husky-4-to-5

This post goes over how to migrate husky from 4 to 7 using the npm package husky-4-to-5.

Problem

Husky’s maintainer created a migration tool husky-4-to-5 but it didn’t suit my needs.

It requires you to be on npm 7+ and there’s a lot of manual work of updating scripts and removing leftover files:

npm exec -- github:typicode/husky-4-to-5 --package-manager npm

Solution

As a result, I created my own CLI tool husky-4-to-5 that’s published on npm.

Migrating is as simple as:

npx husky-4-to-5

What wasn’t automated was prepending npx in front of the binaries of the husky hooks.

For example:

jest → npx jest
     → yarn jest

jest && eslint → npx jest && npx eslint
               → yarn jest && yarn eslint

commitlint -E HUSKY_GIT_PARAMS → npx commitlint --edit $1
                               → yarn commitlint --edit $1


Please support this site and join our Discord!