husky pre-commit doesn't work

3,095 阅读1分钟

最近在弄提交代码前的格式校验,发现pre-commit钩子函数不触发了,弄了好久发现是版本的问题

node版本:v10.16.3
git版本: 2.21.1 
husky版本:5.0.9

package.json内容
"husky": {
    "hooks": {
      "pre-commit": "echo \"git commit trigger husky pre-commit hook\""
    }
  },

husky从4升级到5做了一些变动,具体变更:变动详情

遇到类似的问题解决方案:
  1. 查看项目中.git文件夹中是否创建看hooks文件夹,如果没有,可进行重新安装;如果有,考虑版本问题
  2. 版本问题:husky使用3或4版本可正常触发pre-commit
  3. 使用5版本的husky解决方案,如下:
1.npx husky install // 创建.husky, 会在根目录下创建.husky文件夹

2.npx husky add .husky/pre-commit ...  // 添加pre-commit hooks,会生成一个pre-commit执行脚本

3.在脚本中添加执行函数, 如下图所示,会在commit之前,
输出'git commit trigger husky pre-commit hook',
执行lint-staged