沙哑的预提交钩子不触发
husky pre-commit hook not triggering
我遇到了 husky
的问题。我希望 husky 能够 运行 eslint
并且在即将完成 git 提交时更漂亮,以便它可以执行干净的编码检查。我已经设置了 eslint
、prettier
并集成了两者。手动使用时它们工作正常。但是,如果违反了 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 一起使用,您需要将要 运行 预提交的内容移动到名为 .husky/pre-commit
的文件中。 husky
v7 不会使用您 package.json
中的配置。参见 here for upgrading from v4 to v7。
我找到了一种更简单的方法,无需自己启动 husky 的安装。
我安装了 lint-staged 并测试了由它设置的 husky 预提交挂钩 运行 以下命令:
npx mrm@2 lint-staged
yarn install
第一行安装 lint-staged 和 husky,并在目标 package.json 文件中添加带有示例脚本的正确部分,供您使用或修改。
暂存目标 package.json 并将其提交到 git(本地 git 就足够了)。进行应导致 eslint 查找错误和提交失败的更改。尝试再次提交以测试 lint-staged 设置。
这次 Lint-staged 应该会阻止文件被提交。
我遇到了 husky
的问题。我希望 husky 能够 运行 eslint
并且在即将完成 git 提交时更漂亮,以便它可以执行干净的编码检查。我已经设置了 eslint
、prettier
并集成了两者。手动使用时它们工作正常。但是,如果违反了 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 一起使用,您需要将要 运行 预提交的内容移动到名为 .husky/pre-commit
的文件中。 husky
v7 不会使用您 package.json
中的配置。参见 here for upgrading from v4 to v7。
我找到了一种更简单的方法,无需自己启动 husky 的安装。
我安装了 lint-staged 并测试了由它设置的 husky 预提交挂钩 运行 以下命令:
npx mrm@2 lint-staged
yarn install
第一行安装 lint-staged 和 husky,并在目标 package.json 文件中添加带有示例脚本的正确部分,供您使用或修改。
暂存目标 package.json 并将其提交到 git(本地 git 就足够了)。进行应导致 eslint 查找错误和提交失败的更改。尝试再次提交以测试 lint-staged 设置。 这次 Lint-staged 应该会阻止文件被提交。