sh: husky: 找不到命令
sh: husky: command not found
我已经用 husky 设置了一个节点项目,但是当我的同事试图 运行 npm install
在他的 Mac 上时,他收到以下错误:
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",
}
}
我以为在 运行ning npm install
时安装 husky 就足够了,但事实并非如此。我错过了什么?
我相信这可能是版本特定的问题。安装版本 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"
我已经通过升级到最新的 Husky 版本(7.0.1,从 5.2.0)解决了这个问题。
Git 也很有帮助,告诉我这些文件不是可执行文件。 (Git V 2.24.1)
所以我给了他们可执行权限:
chmod +x PATH_TO_HUSKY_FILE
您需要为每个挂钩执行此命令
我几个小时都在为同样的问题苦苦挣扎。最后,我可以通过以下方式安装依赖项并开始处理我的项目:
- 暂时从 package.json 文件中删除
"prepare": "husky install"
脚本。
- 运行
npm i
(npm install
)。依赖安装成功。
- 再次添加您在第 1 步中删除的
"prepare"
脚本。
- 运行 再次
npm i
安装 husky git 钩子,这样 husky 就可以从现在开始完成它的工作了。
如果 NODE_ENV
设置为“生产”pre-install
,npm ci
也会抛出此错误
如果您正在使用 nvm
,您可能需要在 home
目录中创建一个名为 .huskyrc
的文件并向其中添加以下代码行:
~/.huskyrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
我已经用 husky 设置了一个节点项目,但是当我的同事试图 运行 npm install
在他的 Mac 上时,他收到以下错误:
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",
}
}
我以为在 运行ning npm install
时安装 husky 就足够了,但事实并非如此。我错过了什么?
我相信这可能是版本特定的问题。安装版本 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"
我已经通过升级到最新的 Husky 版本(7.0.1,从 5.2.0)解决了这个问题。
Git 也很有帮助,告诉我这些文件不是可执行文件。 (Git V 2.24.1)
所以我给了他们可执行权限:
chmod +x PATH_TO_HUSKY_FILE
您需要为每个挂钩执行此命令
我几个小时都在为同样的问题苦苦挣扎。最后,我可以通过以下方式安装依赖项并开始处理我的项目:
- 暂时从 package.json 文件中删除
"prepare": "husky install"
脚本。 - 运行
npm i
(npm install
)。依赖安装成功。 - 再次添加您在第 1 步中删除的
"prepare"
脚本。 - 运行 再次
npm i
安装 husky git 钩子,这样 husky 就可以从现在开始完成它的工作了。
如果 NODE_ENV
设置为“生产”pre-install
npm ci
也会抛出此错误
如果您正在使用 nvm
,您可能需要在 home
目录中创建一个名为 .huskyrc
的文件并向其中添加以下代码行:
~/.huskyrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"