2

我正在开发一个 MonoRepo,我试图自动化的最后一件事是我对代码提交的所有 linting/formatting。

目前我的大部分配置都在根文件夹中,我正在将它们扩展到包中。如果我npm run precommit根目录中运行,我可以看到我的包被成功检查。

当我暂存并提交代码时出现问题,哈士奇钩子不运行并且提交通过而没有成功进行检查

文件夹结构

- packages
  - bar/
    - dist
    - src
    package.json
    tsconfig.json
  - foo/
    - dist
    - src
    package.json
    tsconfig.json
.eslintrc
.prettierrc
package.json
tsconfig.json

根包.json

{
  "scripts": {
    "precommit:bar": "cd packages/bar && npm run precommit",
    "precommit:foo": "cd packages/foo && npm run precommit",
    "precommit": "npm-run-all precommit:*"
  },
  "husky": {
    "hooks": {
      "pre-commit": "npm run precommit"
    }
  },
  "lint-staged": {
    "**/*.{ts,tsx}": [
      "eslint --fix",
      "prettier --write"
    ]
  }
}

每个包里面都有这个脚本

"script": {
   "precommit": "lint-staged"
}
4

1 回答 1

3

我在使用最新的 husky 包(5+)时遇到了同样的问题。

我降级到版本 "husky": "^4.3.8", . 它对我有用。

在这里验证:

/Project/.git/hooks检查钩子是否创建。

于 2021-03-04T06:07:37.030 回答