配置 husky、lint-staged、@commitlint/cli

  • husky:一个为git客户端增加hook的工具
  • lint-staged:仅对Git 代码暂存区文件进行处理,配合husky使用
  • @commitlint/cli:让commit信息规范化

1. 创建git仓库

git init

2. 安装

yarn add husky@9.1.3 -D 
yarn add lint-staged@^15.2.7 -D
yarn add @commitlint/cli@^19.3.0 -D
yarn add @commitlint/config-conventional@^19.2.2 -D

3. 生成 .husky 的文件夹

npx husky install

4. 修改.husky/pre-commit

#!/usr/bin/env sh
npx --no-install lint-staged

5. 修改.husky/commit-msg

#!/usr/bin/env sh
npx --no-install commitlint --edit $1

6. 修改package.json

"lint-staged": {
  "src/**/*.{js,ts,vue}": [
    "yarn run lint",
    "prettier --write"
  ]
}

7. 新建commitlint.config.cjs

提示:由于package.json的"type": "module",需将commonjs文件显示声明为.cjs

module.exports = {
  extends: ['@commitlint/config-conventional'],
};

提交格式:

git commit -m <type>[optional scope]: <description> //注意冒号后面有空格
- type:提交的类型(如新增、修改、更新等)
- optional scope:涉及的模块,可选
- description:任务描述

type类型:

类别含义
feat新功能
fix修复 bug
style样式修改(UI校验)
docs文档更新
refactor重构代码(既没有新增功能,也没有修复 bug)
perf优化相关,比如提升性能、体验
test增加测试,包括单元测试、集成测试等
build构建系统或外部依赖项的更改
ci自动化流程配置或脚本修改
revert回退某个commit提交

8. 示范(非规范提交,将提交失败)

git commit -m 'feat: 增加 xxx 功能'
git commit -m 'bug: 修复 xxx 功能'