如何解决sh:哈士奇:找不到命令
我已经使用 husky 设置了一个节点项目,但是当我的同事尝试在他的 Mac 上运行 npm install
时,他收到以下错误:
noa-be@1.0.0 prepare
husky install
sh: husky: command not found
npm ERR! code 127
npm ERR! path /Users/X/Desktop/Workspace/project
npm ERR! command Failed
npm ERR! command sh -c husky install
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/X/.npm/_logs/2021-04-12T13_07_25_842Z-debug.log
这些是相关的 package.json 部分:
{
"scripts": {
"prepare": "husky install"
},"devDependencies": {
"husky": "^5.2.0",}
}
我认为这足以在运行 npm install
时安装 husky,但事实并非如此。我错过了什么?
解决方法
通过升级到最新的 Husky 版本(7.0.1,从 5.2.0),我已经能够解决这个问题。
Git 也很有帮助,它告诉我这些文件不是可执行文件。 (Git V 2.24.1)
所以我给了他们可执行权限:
chmod +x PATH_TO_HUSKY_FILE
你需要为每个钩子执行这个命令
,基于husky description安装后需要进行设置:
- 通过执行以下命令将准备脚本添加到您的
package.json
:npm set-script prepare "husky install" && npm run prepare
; - 通过执行:
npx husky add .husky/pre-commit "npm test"
添加一个钩子。
我相信这可能是版本特定的问题。安装版本 6 npm i husky@6.0.0 --save-dev
,它应该像 husky doc 所说的那样工作。
显然,当我执行 npm i husky --save-dev
时,它出于某种奇怪的原因为我安装了 "husky": "^0.8.1"
,给了我完全相同的错误:sh: husky: command not found
。
方法一:
在您的 package.json
中手动更新:
{
"scripts": {
"prepare": "husky install","create-hook": "husky add .husky/pre-commit \"npm test\"",}
}
然后,运行 npm run prepare && npm run create-hook
。
它应该创建包含 .husky
文件的 .pre-commit
目录。
方法二:
npx husky install
npm set-script prepare "husky install"
npx husky add .husky/pre-commit "npm test"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。