问题背景
最近负责的Web项目中参与人数多了起来,很多人没法自觉地遵守编码规范、在提交代码之前不检查自己的代码格式,导致提交了代码之后无法通过流水线的代码质量检查。
方案和出现的问题
在项目中引入了husky
和lint-staged
来进行代码提交前的eslint
检查和格式化。
使用命令行和WebStorm来进行代码提交时都能够正确调用pre-commit
的钩子,但是在使用SourceTree提交代码时出现了如下错误:
Can't find npx in PATH
导致pre-commit
调用失败。
但是重点不是pre-commit
调用失败,而是在pre-commit
调用失败后直接忽略了错误进行了强制提交。
解决方案
在用户根目录下创建.huskyrc
文件,并在文件中写入如下内容:
# .huskyrc
export PATH="/usr/local/bin/:$PATH"
来保证SourceTree能够找到npx
命令。
/usr/local/bin
是node
的路径。可以通过which node
来获取。