微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sh:哈士奇:找不到命令

如何解决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"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。