一、背景
在使用husky为项目添加git hook做提交验证时,出现了这样的问题。检查了一圈,文件好好的就在那,最开始还是怀疑是不兼容Windows的原因,后面找了一圈终于找到原因了。
二、解决办法
废话先不说,先把解决办法给出来:
检查.husky/pre-commit
文件的换行标识符,将CRLF
换成LF
。即可顺利解决该问题。
三、详细内容
使用的husky
的版本是7.0.1
,准备在pre-commit
钩子处设置一个eslint检查,操作步骤如下:
3.1 安装依赖
- 安装husky和eslint
npm i husky eslint --save-dev
- 创建
pre-commit
文件
安装husky之后会在项目根目录下自动创建一个.husky
文件夹(如果没有自动创建,则运行命令node_modules/.bin/husky install
来手动创建)。
再在该文件夹下创建文件pre-commit
即可设置该pre-commit
钩子,在该文件内填写所要执行的命令即可。
这里我想要执行一下eslint检查,所以我在该文件中写入如下命令:
eslint src/**/*.js
- 开始提交
提交,开始测试
# 添加变更文件
git add .
# 添加提交信息
git commit -m "feat: add husky"
- 开始报错
此时就开始报错了Cannot spawn .husky/pre-commit: No such file or directory
解决办法见上。把文件换行符改为LF
即可。