提交新代码时如何修复错误“未找到 husky-run”?

问题描述

提交使用 Husky 的项目时,我收到一条错误消息,显示 not found husky-run

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

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

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

解决方法

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

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

rm -rf .git/hooks
npm install

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

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

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

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

如果出现任何问题,请阅读documentation for migration from 4 to 6

,

要在 husky 版本 6 中修复此问题,请运行:

yarn husky install
,

不删除 .get/hooks 钩子将不起作用。 根据{{​​3}}:

对于 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 被传递,之前的配置将被删除(推荐)。

,

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