在前端工程化中 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 之后也会自动执行
- 添加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管理