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安装后需要进行设置:

  1. 通过执行以下命令将准备脚本添加到您的 package.jsonnpm set-script prepare "husky install" && npm run prepare;
  2. 通过执行: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"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...