提交时使用 githooks
husky + commitlint
husky
- 安装
pnpm install husky
-
配置
- 运行
npm pkg set scripts.prepare="husky install"执行完上一步的命令之后可以在
package.json文件的 scripts 配置项中看到如下代码, 当然代码也可以手动添加{ "scripts": { "prepare": "husky install" } }-
运行
pnpm prepare执行 husky 安装 -
提交约定钩子 test (该步骤可暂时跳过,等到commitlint安装配置完成后 再执行)
pnpm husky add .husky/commit-msg 'pnpm test'执行后,会看到在根目录的
.husky文件夹下多了一个commit-msg文件,其内容如下:#!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" pnpm test这样每一次 git commit 都会执行一次 pnpm test
commitlint commitlint.js.org/#/
-
安装
pnpm install @commitlint/cli @commitlint/config-conventional -
配置
根目录创建
commitlint.config.js文件,并添加以下内容module.exports = { extends: ["@commitlint/config-conventional"], // 以下是我们自定义的规则 rules: { "type-enum": [ 2, "always", [ "build", // 构建相关 "chore", // 辅助工具的变动 "ci", // 自动化构建 "docs", // 文档(documentation) "bug", // 此项特别针对bug号,用于向测试反馈bug列表的bug修改情况 "feat", // 新功能(feature) "fix", // 修补bug "style", // 格式(不影响代码运行的变动) "refactor", // 重构(即不是新增功能,也不是修改bug的代码变动) "test", // 增加测试 "revert", // feat(pencil): add ‘graphiteWidth’ option (撤销之前的commit) "types", // 定义规则 ], ], }, }; -
使用commitlint约定 ,在Husky中,修改一下 commit-msg 脚本,在每次 git commit 的时候执行 commitlint 校验
pnpm husky add .husky/commit-msg 'pnpm commitlint --edit $1'