husky7 add hook命令不起作用问题
背景
开发环境:git 2.20.1.windows.1 + node v14.15.1 + npm v6.14.8 + win10 + husky v7.0.4
项目需要配置git hook,在commit之前执行代码校验ESLint,规范commit提交日志格式。我们使用husky来配置git hook.
解决办法
升级 npm 到v7版本或更高。
过程
参考 husky 文档执行命令:husky github
npm install husky -D
npm set-script prepare "husky install"
到这一步,npm set-script命令不存在,所以我们手动执行。
npx husky install
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
husky add 操作不起作用,提示如下:
Usage:
husky install [dir] (default: .husky)
husky uninstall
husky set|add <file> [cmd]
然后去github issue去找有解决办法没有,有人遇到相同的问题:
Can't add a hook
有人提到使用以下命令:
node node_modules/.bin/husky install ...
node node_modules/.bin/husky add ...
但是我这里还是不行,还是有报错:
C:\Users\user\projects\project\node_modules\.bin\husky:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
^^^^^^^
SyntaxError: missing ) after argument list
最后还是升级 npm 到最新的 v8 才搞定