我有一个问题husky。我希望 huskyeslint在 git commit 即将完成时运行并且更漂亮,以便它可以强制执行干净的编码检查。我已经设置eslint并prettier集成了两者。手动使用时它们工作正常。eslint然而,如果违反其中一条规则,哈士奇允许提交。
我还将pre-commit.sample本地项目.git/hooks目录中的文件重命名为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"
}
Run Code Online (Sandbox Code Playgroud)
请问这里可能是什么问题?非常感谢。
我认为要使其与huskyv7 一起使用,您需要将要运行预提交的内容移动到名为.husky/pre-commit. huskyv7 不会使用您的package.json. 请参阅此处了解从 v4 升级到 v7 的信息。
我找到了一种更简单的方法来做到这一点,而不必自己启动 husky 的安装。
我安装了 lint-staged 并测试了由它通过运行以下命令设置的 husky 预提交挂钩:
npx mrm@2 lint-staged
yarn install
Run Code Online (Sandbox Code Playgroud)
第一行安装 lint-staged 和 husky,并在目标 package.json 文件中添加带有示例脚本的正确部分,以供您使用或修改。
将目标 package.json 暂存并提交到 git 中(本地 git 就足够了)。进行可能会导致 eslint 查找错误和提交失败的更改。尝试再次提交以测试 lint 阶段设置。Lint-staged 应该会阻止这次提交文件。