Husky学习体会

294 阅读2分钟

概述

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。更好地实现前端工程化