likes
comments
collection
share

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

作者站长头像
站长
· 阅读数 3

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

Commitlint 和 Husky

git规范化提交的意义在于提高项目的可维护性、可读性和协作效率,使得团队能够更加高效地开发和维护项目

Commitlint是一个 linter 工具,实现对git的commit的一个提交信息的一个校验

Husky 是一个管理 Git 挂钩并在提交前自动运行验证脚本的工具。因为v8到v9命令的变化所以有了这篇文章

如何安装 Commitlint 和 Husky

首先我们安装Commitlint

npm install --save-dev @commitlint/config-conventional @commitlint/cli

随后在项目根目录创建commitlint.config.js,将我们常用的那套提交规范复制到其中

module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    // type 类型定义
    'type-enum': [
      2, // 2 表示必须
      'always',
      [
        'feat', // 新功能 feature
        'fix', // 修复 bug
        'merge', // 合并分支
        'docs', // 文档注释
        'style', // 代码格式(不影响代码运行的变动)
        'refactor', // 重构(既不增加新功能,也不是修复bug)
        'perf', // 性能优化
        'test', // 增加测试
        'chore', // 构建过程或辅助工具的变动
        'revert', // 回退
        'build', // 打包
      ],
    ],
    // subject 大小写不做校验
    'subject-case': [0],
  },
};

随后我们对commitlint是否生效进行验证,在命令行输入:

echo 'add commitlint config' | npx commitlint

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

可以看到commitlint已经生效并且对不规范的提交信息进行了报错, 这样对commit的提交信息的校验就配置好了,接下来要做的技术怎么样使我们项目每次提交的的时候都触发commitlinthusky的用处就是这个

首先我们对husky进行安装:

npm install husky --save-dev

注意: 现在默认安装的是V9 版本,与之前的版本的初始化是不一样的,之前版本的初始化这里就不进行详细介绍了

初始化husky:

npx husky init

会发现项目的根目录多出一个husky文件夹,其中存在pre-commit文件

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

这老版本咱们可以直接将下面这段代码复制到pre-commit文件其中:

. "$(dirname -- "$0")/_/husky.sh"

npx --no-install commitlint --edit $1

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

随后咱们进行提交操作首先我们在commit提交时输入test

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

会发现报错了无法提交,这是符合预期的,因为我们输入的并不规范,下面我们输入正常的提交信息feat: add commitlint config

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

哎~,怎么回事怎么也报错!!!,而且我明明输入的是符合规范的提交信息啊,而且报错还报的我输入了test,离了个大普

这在老版本这么操作是没有问题呀,然后我就开始百度,找万能的百度大哥帮忙,然后我就发现了这篇文章,找到了解决办法

我们将pre-commit这个文件删除,给这个万恶的文件干掉,在命令行输入:

echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg

如何为你的项目配置 Commitlint 和 Husky,实现git提交规范(新版本)

这时候会发现在husky多了一个commit-msg的文件,随后我们再次用testfeat: add commitlint config不规范和规范的提交信息进行测试会发现成功提交,完美!

注意: 这是V9husky,低版本的按照以前的操作方法就可以啦