githooks之使用husky规范git提交

511 阅读1分钟

Git Hooks 就是那些在Git执行特定事件(如commit、push、receive等)后触发运行的脚本

Git Hooks功能作用

  •  多人开发代码语法、规范强制统一
  •  commit message 格式化、是否符合某种规范
  •  如果有需要,测试用例的检测
  •  服务器代码有新的更新的时候通知所有开发成员
  •  代码提交后的项目自动打包travis ci(git receive之后) 等等

实例:现在使用husky实现以下功能

  •  代码规范校验
  •  commit message规范
  • 第一步:初始化项目并初始化git 第二步:安装相关依赖

husky lint-staged 只校验有更改的提交 prettier 格式化 @commitlint/cli @commitlint/config-angular(@commitlint/config-conventional) conventional-changelog-cli 生成change log

npm i -D husky lint-staged prettier @commitlint/{config-conventional,cli,config-angular} conventional-changelog-cli

  • 第三步:配置package.json
"lint-staged": {
    "*.js": [
      "eslint --fix",
      "git add"
    ],
    "*.json": [
      "prettier --write",
      "git add"
    ]
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged", // 校验代码规范
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" // 校验commit message规范
    }
  },

第四步:根目录新增commitlint配置文件commitlint.config.js

module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'type-enum': [2, 'always', [
      'feat',
      'fix',
      'docs',
      'style',
      'refactor',
      'test',
      'build',
      'revert',
      'chore',
      'merge'
    ]]
  }
}