vue 3 项目中通过 husky + commitlint 强制规范 git 提交信息格式,安装 husky 并初始化钩子,配置 commitlint 使用 conventional commits 规则,挂载到 commit-msg 钩子拦截非法提交,并可选集成 commitizen 提供交互式提交降低门槛。

Vue 3 项目中用 Husky + Commitlint 规范提交信息,核心是:让每次 git commit 都必须符合预设格式(比如 feat: 添加登录按钮),否则直接拦截。这不是“建议”,而是强制执行的工程纪律。
安装与初始化 Husky
确保项目已初始化 Git 仓库(git init)。推荐使用 pnpm(兼容性好、速度快):
- 安装 Husky:
pnpm add -D husky@7 - 初始化钩子目录:
npx husky install(生成.husky/文件夹) - 注册 prepare 脚本(自动在 install 后运行):
pnpm set-script prepare "husky install",再执行pnpm run prepare
配置 Commitlint 检查规则
Commitlint 不自己定规矩,它靠规则集驱动。最常用的是 Conventional Commits 规范:
- 安装依赖:
pnpm add -D @commitlint/cli @commitlint/config-conventional - 创建配置文件
commitlint.config.mjs(注意后缀是.mjs,适配 Vue 3 默认 ESM 环境):
export default { extends: ['@commitlint/config-conventional'] };
该配置默认启用 feat、fix、docs 等标准类型,并要求 header 行不超过 72 字符。
把 Commitlint 挂到 commit-msg 钩子上
Husky 的 commit-msg 钩子会在提交信息写完、真正提交前触发,正是检查的最佳时机:
- 执行命令:
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"' - 这会在
.husky/commit-msg中生成一行脚本,每次提交都调用 commitlint 校验你写的 message - 如果格式错误(如只写
fix没冒号和描述),终端会报错并中止提交
(可选但推荐)搭配 Commitizen 降低使用门槛
手动写 feat(api): 优化请求超时逻辑 容易出错。用 Commitizen 提供交互式菜单,新手也能一次写对:
- 安装:
pnpm add -D commitizen cz-git - 创建
cz-config.mjs(内容含 type 列表、提示文案、跳过 body/footer 等) - 在
package.json中添加:"config": { "commitizen": { "path": "cz-git" } } - 之后提交改用:
git add . && npx cz,全程键盘选择即可
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










