一、type 类型概览
| 值 | 描述 |
|---|---|
| feat | 新增一个功能 |
| fix | 修复一个Bug |
| docs | 文档变更 |
| style | 代码格式(不影响功能,例如空格、分号等格式修正) |
| refactor | 代码重构 |
| perf | 改善性能 |
| test | 测试 |
| build | 变更项目构建或外部依赖(例如scopes: webpack、gulp、npm等) |
| ci | 更改持续集成软件的配置文件和package中的scripts命令,例如scopes: Travis, Circle等 |
| chore | 变更构建流程或辅助工具 |
| revert | 代码回退 |
标准格式:
<类型>[可选 范围]: <描述>
[可选 正文]
[可选 脚注]
fix --- PATCH
feat --- MINOR
BREAKING CHANGE --- MAJOR 表示方法:<类型>(范围) 后面有一个 !
二、 如何遵守规范
Commitizen
三、husky 最后的帮手
可以在 Git hooks 中使用的 npm 包,它可以帮助你在特定的 Git 事件发生时执行命令,比如在Git的一些关键操作(例如提交、推送、合并等)前或后,执行一些脚本或命令,比如代码格式化、自动化测试、打包发布等。
3.1 安装
pnpm install husky --save-dev
3.2 在package.json中定义需要执行的Git hooks和对应的脚本
"husky": {
"hooks": {
"pre-commit": "npm run lint && npm run test" // 每次在执行`git commit`命令时,都会自动执行npm中定义的`lint`和`test`命令。
}
}
还有一些别的命令: pre-push、post-merge、post-checkout
当然 除了在pageage.json中设置之外,还可以使用
npx husky add .husky/pre-commit来生成一个 hook 的文件
四、使用lint-staged, 对暂存区代码进行eslint校验和prettier格式化
husky 是代码提交的时候,校验代码, 而在提交前进行校验就需要用到 lint-staged,
npm i lint-staged --save-dev
// package.json文件中设置
"lint-staged": {
" **/*.scss": "stylelint --syntax scss",
"** / *.{js,jsx, tsx,ts }": "npm run lint-staged:js",
"**/* .{js,jsx,tsx,ts,less,scss,md,json}": [ "prettier --write" ]
}