8

我已经在我的应用程序中安装了 Husky v5,我想在提交时运行该lint-staged命令。

我遵循了入门文档,但在我的 git 配置文件中没有创建 .git/hooks/pre-commit 文件。

所以,当我提交时,钩子没有运行,提交直接通过,没有被 lint-staged 检查。

我试过跑步yarn add -D husky@nextnpm i -D husky@next。我还尝试删除 node_modules 和 npm 重建。

.husky/预提交

#!/bin/sh
[ -z "$CI" ] && exit 0

. "$(dirname $0)/_/husky.sh"

lint-staged

包.json

"scripts": {
  "postinstall": "husky install"
},
4

3 回答 3

7

husky v5 不生成钩子(不能说为什么)
所以我降级到 4.3.8 并删除了 .git/hooks(不是必需的):

rm -rf .git/hooks
yarn add -D husky@4.3.8
于 2021-02-16T16:08:02.433 回答
2

有点晚了,但我今天也遇到了这个问题。经过大量搜索后,我发现这个问题描述了涉及 Yarn 的安装问题。在我的情况下,yarn 没有正确运行来自 husky 的安装后脚本,并且根据该广告的建议,我发现将我的postinstall线路更改package.json为这解决了我的问题:

{
    "postinstall": "node ./node_modules/husky/lib/installer/bin install"
}

在完成我的设置时,我从不同的位置运行并重新运行了几次安装。我发现这个指令列表有助于确保我每次都将我的 git 配置重置为一致的状态,特别是提到hooksPath.

于 2021-02-02T15:15:22.050 回答
1

您需要在文件中添加yarnbefore :lint-staged.husky/pre-commit

#!/bin/sh
[ -z "$CI" ] && exit 0

. "$(dirname $0)/_/husky.sh"

yarn lint-staged

那是因为:

如果您直接调用本地安装的二进制文件,则需要 通过包管理器运行它们

您可以在此处此处找到更多信息。希望有帮助

于 2021-02-05T16:53:46.443 回答