husky更新版本后hooks不生效问题

1,829 阅读1分钟

在前端工程化中 husky必不可少的 可以限制提交代码的规范性 最近在使用husky的时候 hooks一直不生效 下面说一下具体原因 以及使用方法

  • husky更新之前的用法 很简单

    1.安装husky

    npm install husky --save-dev

    2.在packagejson 中配置

  "husky": {
    "hooks": {
      "pre-commit": "npm run test", // 在commit之前先执行npm run test命令
      "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS" // 校验commit时添加的备注信息是否符合我们要求的规范
    }
  }

  • husky 更新后用法

    1.安装husky 2.在packgae.json中添加prepare脚本

{
  "scripts": {
    "prepare": "husky install"
  }
}

然后执行npm run prepare 会出现一个.husky文件 这个命令在npm i 之后也会自动执行

  1. 添加hooks 执行以下命令 npx husky add .husky/pre-commit "npm run test"

运行完该命令后我们会看到.husky/目录下新增了一个名为pre-commit的shell脚本。也就是说在在执行git commit命令时会先执行pre-commit这个脚本。pre-commit脚本内容如下

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run test

以后再git commit 的时候 就会先 执行 npm run test 若成功 则会commit 成功 若失败代码 还会放在暂存区

注意

1.若以上步骤全部完成之后 hooks 还是不生效 检查一下你的 node git npm 的版本是否太低 这三者的版本或影响到 hooks  
2.在安装husky 之前此项目要被git管理