繁体   English   中英

哈士奇预提交钩子没有触发

[英]husky pre-commit hook not triggering

我有husky的问题。 我希望eslint在即将完成 git commit 时运行eslinteslint ,以便它可以强制执行干净的编码检查。 我已经设置eslintprettier和综合两者。 手动使用时它们工作正常。 但是,如果违反了eslint规则之一,则eslint允许提交。

我还将本地项目的.git/hooks目录中的pre-commit.sample文件重命名为pre-commit

这是我的package.json文件:

  "scripts": {
    "prettier-format": "prettier --config .prettierrc 'src/**/*.ts' 'test/**/*.ts' --write",
    "lint": "eslint . --ext .ts"
  },
  "husky": {
    "hooks": {
      "pre-commit": "npm run prettier-format && npm run lint"
    }
  },
  "devDependencies": {
    "husky": "^7.0.1"
  }

请问这里可能是什么问题? 非常感谢你。

我认为要使其与husky v7 一起使用,您需要将要运行的 pre-commit 移动到名为.husky/pre-commit的文件中。 husky v7 不会使用您的package.json的配置。 有关从 v4 升级到 v7 的信息,请参见此处

我找到了一种更简单的方法来做到这一点,而无需自己启动 husky 的安装。

我通过运行以下命令安装了 lint-staged 并测试了由它设置的 husky pre-commit 钩子:

npx mrm@2 lint-staged
yarn install

第一行安装 lint-staged 和 husky,并在目标 package.json 文件中添加带有示例脚本的正确部分供您使用或修改。

将目标 package.json 暂存并提交到 git(本地 git 就足够了)。 进行应该导致 eslint find 错误和提交失败的更改。 再次尝试提交以测试 lint-staged 设置。 Lint-staged 应该防止这次提交文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM