Mac下SourceTree无法执行pre-commit的解决方案

问题背景

最近负责的Web项目中参与人数多了起来,很多人没法自觉地遵守编码规范、在提交代码之前不检查自己的代码格式,导致提交了代码之后无法通过流水线的代码质量检查。

我是mac环境下,由于使用了nvm,不能正确识别node路径,执行代码提交后,husky一直报错:

.husky/pre-commit: line 8: npm: command not found

查询husky官方文档才知道如何解决:
创建~/.huskyrc文件,增加对nvm路径的支持:

# ~/.huskyrc
# This loads nvm.sh and sets the correct PATH before running hook
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

--------------------

方案和出现的问题

在项目中引入了huskylint-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/binnode的路径。可以通过which node来获取。



作者:foolchen
链接:https://www.jianshu.com/p/fe4f53725f35
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值