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

fro*_*sty 23 git husky

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

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

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

其他人有关于如何解决这个问题的想法吗?

fro*_*sty 27

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

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

rm -rf .git/hooks
npm install
Run Code Online (Sandbox Code Playgroud)

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

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

如果出现任何问题,请阅读从 4 迁移到 6文档

  • 不适用于纱线。 (2认同)
  • 这对我有用 (2认同)

Kev*_*cke 8

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

"scripts": {
  ...
  "prepare": "husky install",
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后运行yarn install​​or npm install,husky 将被初始化。这将确保查看您的存储库的人也能够运行 husky。


Mat*_*eri 7

不删除.get/hooks钩子是行不通的。根据从 4 到 6 版本的迁移手册

对于 npm 使用执行

 npm install husky@6 --save-dev \
      && npx husky-init \
      && npm exec -- github:typicode/husky-4-to-6 --remove-v4-config
Run Code Online (Sandbox Code Playgroud)

纱线用途:

 yarn add husky@6 --dev \
  && npx husky-init \
  && npm exec -- github:typicode/husky-4-to-6 --remove-v4-config
Run Code Online (Sandbox Code Playgroud)

yarn add husky@6 --dev \
  && yarn dlx husky-init --yarn2 \
  && npm exec -- github:typicode/husky-4-to-6 --remove-v4-config
Run Code Online (Sandbox Code Playgroud)

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

rm -rf .husky && git config --unset core.hooksPath
Run Code Online (Sandbox Code Playgroud)

解释发生了什么:

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

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

  • 仅供参考,各位,您需要 **npm 版本 7** 来运行这个东西中的最后一个脚本。 (3认同)

小智 7

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

yarn husky install
Run Code Online (Sandbox Code Playgroud)


小智 5

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


小智 5

这对我有用:

如果您还没有 ~/.huskyrc 文件,请添加一个文件

  • 触摸~/.huskyrc
  • 打开~/.huskyrc
  • 粘贴以下内容:
# ~/.huskyrc
# This loads nvm.sh and sets the correct PATH before running hook
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Run Code Online (Sandbox Code Playgroud)