sh:哈士奇:找不到命令

Gae*_*elF 80 git node.js npm husky git-husky

我已经用 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
Run Code Online (Sandbox Code Playgroud)

这些是相关的 package.json 部分:

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
Run Code Online (Sandbox Code Playgroud)

我以为这足以让 husky 在运行时安装npm install,但事实并非如此。我缺少什么?

Hos*_*avi 175

如果您使用的是nvm,您可能需要.huskyrchome目录中创建一个名为的文件,并向其中添加以下代码行:

~/.huskyrc

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Run Code Online (Sandbox Code Playgroud)

  • 尝试从 IntelliJ 提交时出现以下错误消息(直接从终端工作正常):`.husky/pre-commit: 4: npm: not find`。你的建议解决了我的问题。谢谢! (2认同)

Dav*_*ira 28

我在同一个问题上挣扎了好几个小时。最后,我可以通过执行以下操作来安装依赖项并开始处理我的项目:

  1. "prepare": "husky install"暂时从 package.json 文件中删除该脚本。
  2. 跑步npm inpm install)。依赖项安装成功。
  3. 再次添加"prepare"您在步骤 1 中删除的脚本。
  4. 再次运行npm i以安装 husky git hooks,这样 husky 就可以从现在开始完成它的工作了。


UNl*_*nel 20

中遇到了这个问题Github Desktop

通过退出Github Desktop并重新打开它解决了它。


Nor*_*ldt 18

它在我的终端中有效,但在 VSCode 版本控制中无效。因此必须强制使用 vscode 应用程序并重新启动它才能工作。


小智 11

我已经能够通过升级到最新的 Husky 版本(7.0.1,从 5.2.0)来解决这个问题。

Git 也很有帮助,并告诉我这些文件不是可执行文件。(Git V 2.24.1)

所以我给他们可执行权限:

chmod +x PATH_TO_HUSKY_FILE
Run Code Online (Sandbox Code Playgroud)

您需要为每个钩子执行此命令


Raj*_*ush 9

我相信这可能是版本特定的问题。安装版本 6,npm i husky@6.0.0 --save-dev它应该可以像husky 文档所说的那样工作。

显然,当我这样做时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\"",
    }
}

Run Code Online (Sandbox Code Playgroud)

然后,运行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"