前端工程化之git commit lint

421 阅读1分钟

前排提供原生文档

git hooks

husky

commitlint

conventional-commits

可以直接看 第三个,然后瞄一眼第四个. 能看明白就不要看下文我写的东西了.

依赖

npn i husky@7.0.1 @commitlint/cli@13.1.0 @commitlint/config-conventional@13.1.0 --dev

husky 是一个 git hooks 管理工具,支持所有的hooks,通过它可以实现 一部分ci 集成,比如 git push 前进行test lint校验,以及 git commit lint

commitlint 提供git commit 校验能力,规范的 commit 能够提升团队协作体验,便于追踪代码改动

  • 注意这里使用husky@7,husky 在这个版本破坏性更新了配置方法,如果你使用的低版本,下文的husky配置是不合适的.

安装 husky

  • yarn 下安装 husky ,和 npm 有些区别,yarn文档

package.json添加script - "prepare":"husky install" 然后执行它,进行husky初始化

// 
{
    "scripts": {
	"prepare":"husky install",
         ...
        },
    ...
}
npm run prepare

或者使用@/husky/init

npx husky-init && npm install

添加husky commit-msg hook

npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

创建 commitlint 配置文件

这里采用 root/commitlint.config.js 的格式(其他格式),使用默认 lint 配置

module.exports = {
  extends: ['@commitlint/config-conventional'],
    rules: {
      'body-max-line-length': [0, 'always', Infinity]
    }
}

关于 commit 约束,请看这篇约定式提交