'How to fix error 'not found husky-run' when committing new code?
When committing on a project that uses Husky, I get an error that says not found husky-run
I checked the package.json
and it has husky as a dependency, and I can see the pre-commit hook configuration for Husky in the package.json
. So I don't know what to do to fix this. Additionally, other members on my team can commit and husky works for them.
I also tried rm -rf node_modules && npm install
and then committing again, but still, I get the same error.
Anyone else have ideas on how to fix this?
Solution 1:[1]
To fix this there are two methods, depending on which version of Husky you are already on.
If you're using Husky v4 or lower, do the following:
rm -rf .git/hooks
npm install
For Husky v7 or greater, do the following:
# For NPM
npm install husky@7 --save-dev \
&& npx husky-init \
&& npm exec -- github:typicode/husky-4-to-7 --remove-v4-config
# For Yarn
yarn add husky@7 --dev \
&& npx husky-init \
&& npm exec -- github:typicode/husky-4-to-7 --remove-v4-config
# or
yarn add husky@7 --dev \
&& yarn dlx husky-init --yarn2 \
&& npm exec -- github:typicode/husky-4-to-7 --remove-v4-config
At this point you should be able to commit and have your hooks working again.
If anything goes wrong, please read the documentation for migration from 4 to 7.
Solution 2:[2]
To fix this in husky version 6 run:
yarn husky install
Solution 3:[3]
Do not delete .get/hooks
hooks won't work.
According migrating manual from 4 to 6 version :
For npm usage execute
npm install husky@6 --save-dev \
&& npx husky-init \
&& npm exec -- github:typicode/husky-4-to-6 --remove-v4-config
For yarn usage:
yarn add husky@6 --dev \
&& npx husky-init \
&& npm exec -- github:typicode/husky-4-to-6 --remove-v4-config
and
yarn add husky@6 --dev \
&& yarn dlx husky-init --yarn2 \
&& npm exec -- github:typicode/husky-4-to-6 --remove-v4-config
If any errors while the process you can simply revert changes by executing:
rm -rf .husky && git config --unset core.hooksPath
Explanation what's going on:
husky init sets up Git hooks and updates your package.json
scripts (you may want to commit your changes to package.json
before running husky init).
husky-4-to-6
creates hooks based on your husky v4 config. If --remove-v4-config
is passed, previous config will be deleted (recommended).
Solution 4:[4]
I simply had to add a prepare script to my package.json
:
"scripts": {
...
"prepare": "husky install",
...
}
Then run yarn install
or npm install
and husky will be initialized. This will make sure people who check out your repo will also be able to run husky.
Solution 5:[5]
just a "yarn install" solved this for me
Solution 6:[6]
just this 'yarn add husky@6 --dev' inside your terminal
Solution 7:[7]
This worked for me:
add a file ~/.huskyrc if you don't have one already
- touch ~/.huskyrc
- open ~/.huskyrc
- paste the following:
# ~/.huskyrc
# This loads nvm.sh and sets the correct PATH before running hook
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | PURGEN |
Solution 2 | Zeeshan Ali |
Solution 3 | marc_s |
Solution 4 | |
Solution 5 | Ravi Kumar |
Solution 6 | Owamamwen |
Solution 7 | Ayman Bakri |