【问题标题】:How to fix error 'not found husky-run' when committing new code?提交新代码时如何修复错误“未找到 husky-run”?
【发布时间】:2021-05-20 14:46:42
【问题描述】:

在提交使用 Husky 的项目时,我收到一条错误消息,上面写着 not found husky-run

我检查了package.json,它有 husky 作为依赖项,我可以在package.json 中看到 Husky 的预提交挂钩配置。所以我不知道该怎么做才能解决这个问题。此外,我团队中的其他成员也可以为他们投入和努力工作。

我也尝试了rm -rf node_modules && npm install,然后再次提交,但仍然出现同样的错误。

还有其他人对如何解决这个问题有想法吗?

【问题讨论】:

  • 我在基于 unix 的 Docker 容器中运行 yarn install 然后在 Windows 上提交后得到了这个。 Windows 无法运行该文件,甚至认为它存在。

标签: git husky


【解决方案1】:

要解决此问题,有两种方法,具体取决于您使用的 Husky 版本。

如果您使用的是 Husky v4 或更低版本,请执行以下操作:

rm -rf .git/hooks
npm install

对于 Husky v7 或更高版本,请执行以下操作:

# For NPM
 npm install husky@7 --save-dev \
      && npx husky-init \
      && npm exec -- github:typicode/husky-4-to-7 --remove-v4-config

# For Yarn
 yarn add husky@7 --dev \
  && npx husky-init \
  && npm exec -- github:typicode/husky-4-to-7 --remove-v4-config
# or
 yarn add husky@7 --dev \
  && yarn dlx husky-init --yarn2 \
  && npm exec -- github:typicode/husky-4-to-7 --remove-v4-config

此时你应该能够提交并让你的钩子再次工作。

如果有任何问题,请阅读documentation for migration from 4 to 7

【讨论】:

  • 谢谢,它对我有用,npm install 步骤不是必需的。在这里使用纱线
  • @dspacejs 实际上这个解决方案也适用于纱线。尝试先手动删除你的 node_modules 然后重新安装。
  • 好的,所以这对于 husky 版本 4 或更早版本可能工作得很好,但是如果您已经升级到 husky 6,那么您需要按照下面 Uladz Kha 的回答。
  • 这是为我做的
  • 谢谢你 - 辛苦了 - 仅供参考,使用 rm -Recurse -Force .git/hooks 用于 Powershell
【解决方案2】:

不要删除.get/hooks 钩子不起作用。 根据migrating manual from 4 to 6 version

对于 npm 使用执行

 npm install husky@6 --save-dev \
      && npx husky-init \
      && npm exec -- github:typicode/husky-4-to-6 --remove-v4-config

对于纱线的使用:

 yarn add husky@6 --dev \
  && npx husky-init \
  && npm exec -- github:typicode/husky-4-to-6 --remove-v4-config

yarn add husky@6 --dev \
  && yarn dlx husky-init --yarn2 \
  && npm exec -- github:typicode/husky-4-to-6 --remove-v4-config

如果过程中出现任何错误,您可以通过执行简单地还原更改:

rm -rf .husky && git config --unset core.hooksPath

解释发生了什么:

husky init 设置 Git 挂钩并更新您的 package.json 脚本(您可能希望在运行 husky init 之前将您的更改提交到 package.json)。

husky-4-to-6 根据您的 husky v4 配置创建挂钩。如果通过--remove-v4-config,则会删除之前的配置(推荐)。

【讨论】:

  • 仅供参考,各位,您需要 npm 版本 7 来运行这件事中的最后一个脚本。
  • 我同意,需要 npm 版本 7 才能使其正常工作。运行脚本后,我恢复到 npm 6 和 nodejs 12 并且一切对我来说仍然正常运行。此外,他们的帮助文档的这一部分可以帮助您更新脚本以使用 husky@6:typicode.github.io/husky/#/?id=migrate-from-v4-to-v6
  • 由于项目限制,我有 npm 6 和节点 10。可能这就是为什么它打破了我......
  • 请尝试 yarn husky install 获取 npm 6
  • 还要确保您使用的是git 2.9 版或更高版本✅(我没有,而且 Husky 6 在完成迁移 cli 步骤后无法正常工作)。发现隐藏在 Husky 迁移文档的细则中的这个小细节并解决了它。
【解决方案3】:

要在 husky 版本 6 中解决此问题,请运行:

yarn husky install

【讨论】:

    【解决方案4】:

    只是一个“纱线安装”为我解决了这个问题

    【讨论】:

      【解决方案5】:

      就在你的终端里面这个'yarn add husky@6 --dev'

      【讨论】:

        【解决方案6】:

        我只需将准备脚本添加到我的package.json

        "scripts": {
          ...
          "prepare": "husky install",
          ...
        }
        

        然后运行yarn install,哈士奇就会被初始化。这将确保查看您的 repo 的人也能够运行 husky。

        【讨论】:

          猜你喜欢
          • 2021-07-13
          • 1970-01-01
          • 2021-03-17
          • 1970-01-01
          • 2018-10-09
          • 2021-10-09
          • 2023-02-15
          • 2021-10-19
          相关资源
          最近更新 更多