代码仓库初始化模板 (1) -- husky & commitlint

目录

安装

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

启用 Git hooks

1
npx husky install

如果您想在下一次安装依赖模块时自动启用 Git hooks:

1
npm pkg set scripts.prepare="husky install"

配置 commitlint

在代码仓库根目录下添加文件:

commitlint.config.jsview raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
* feat:新增功能
* fix:bug 修复
* docs:文档更新
* style:不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
* refactor:重构代码(既没有新增功能,也没有修复 bug)
* perf:性能, 体验优化
* test:新增测试用例或是更新现有测试
* build:主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
* ci:主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
* chore:不属于以上类型的其他类型,比如构建流程, 依赖管理
* revert:回滚某个更早之前的提交
*/

module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [
2,
'always',
[
'feat',
'fix',
'docs',
'style',
'refactor',
'perf',
'test',
'build',
'ci',
'chore',
'revert',
],
],
'subject-full-stop': [0, 'never'],
'subject-case': [0, 'never'],
},
}

添加 commitlint 的 hook

1
npx husky add .husky/commit-msg  'npx --no -- commitlint --edit ${1}'