概述
Husky能让你更简单地使用Git Hooks。可以阻止不合格的git commit,git push等操作。对git执行的一些命令,通过对应的hooks钩子触发,执行自定义的脚本程序
使用
版本为v4.2.5
安装
npm install -D husky
配置
需要在项目的package.json中进行配置,
也可以使用.huskyrc或者.huskyrc.json进行配置
"scripts": {
"lint": "eslint src"
},
"husky": {
"hooks": {
"pre-commit": "npm run lint"
}
},
然后在你每一次git commit之前,都会执行一次对应的hook脚本npm run lint。
在项目中我们会使用commit-msg这个git hook来校验我们commit时添加的备注信息是否符合规范。
{
"husky": {
"hooks": {
"commit-msg": "commitlint -e $HUSKY_GIT_PARAMS" // 校验commit时添加的备注信息是否符合我们要求的规范
}
}
}
例子
以自己gitee仓库为例子,配置husky的pre-commit为npm version
运行git commit
可以看到执行了husky中的配置,请注意husky的版本不能太高,不然会产生不一致的结果
常用的hooks
Husty支持较多的git钩子,不支持服务器端钩子
1、提交工作流hooks
commit操作有4个挂钩被用来处理提交的过程
无法复制加载中的内容
pre-commit:在键入提交信息前运行,最先触发运行的脚本。被用来检查即将提交的代码快照。**例如,检查是否有东西被遗漏、运行一些自动化测试、以及检查代码规范。**当从该挂钩返回非零值时,Git 放弃此次提交。该挂钩可以被用来检查代码错误,检查代码格式规范,检查尾部空白(默认挂钩是这么做的),检查新方法(译注:程序的函数)的说明。
prepare-commit-msg:在提交信息编辑器显示之前,默认信息被创建之后运行
commit-msg:会在用户输入提交信息之后被调用。这适合用来提醒开发者他们的提交信息不符合你团队的规范。传入这个钩子唯一的参数是包含提交信息的文件名。
post-commit:挂钩是作为通知之类使用的
体会
husky可以让我们向项目中方便添加git hooks。更好地实现前端工程化