找回密码
 立即注册
首页 业界区 安全 代码提交信息规范插件commitlint/cli的安装和使用 ...

代码提交信息规范插件commitlint/cli的安装和使用

谧怏弦 2025-5-31 23:24:12
代码提交信息规范插件commitlint/cli的安装和使用
  1. npm install --save-dev @commitlint/cli@^17.6.0 @commitlint/config-conventional@^17.6.0
复制代码
新增commitlint.config.cjs
  1. // commitlint.config.js
  2. /**
  3. * CommitLint 配置文件
  4. * 该配置遵循 Conventional Commits 规范,适用于企业级提交校验标准
  5. */
  6. module.exports = {
  7.   // 使用社区通用规范
  8.   extends: ['@commitlint/config-conventional'],
  9.   // 自定义规则
  10.   rules: {
  11.     // 1. type 类型必须在以下列表中,保证语义清晰
  12.     'type-enum': [
  13.       2,
  14.       'always',
  15.       [
  16.         'feat',     // 新功能 feature
  17.         'fix',      // 修复 bug
  18.         'docs',     // 文档变更
  19.         'style',    // 代码格式(不影响功能,如空格、缩进)
  20.         'refactor', // 代码重构(不包括修复和功能)
  21.         'perf',     // 性能优化
  22.         'test',     // 添加或修改测试
  23.         'build',    // 构建工具变更(webpack、vite、npm scripts 等)
  24.         'ci',       // CI 配置变更(GitHub Actions、GitLab CI 等)
  25.         'chore',    // 其他日常事务(构建过程辅助脚本、依赖升级等)
  26.         'revert'    // 回滚提交
  27.       ]
  28.     ],
  29.     // 2. type 必须小写(例如 "Feat" 会报错)
  30.     'type-case': [2, 'always', 'lower-case'],
  31.     // 3. scope(作用域)必须小写,保持统一(如 "auth", "api")
  32.     'scope-case': [2, 'always', 'lower-case'],
  33.     // 4. subject(简短描述)不能为空
  34.     'subject-empty': [2, 'never'],
  35.     // 5. subject 不允许以句号结尾(如 "fix: update foo." 会报错)
  36.     'subject-full-stop': [2, 'never', ['.']],
  37.     // 6. subject 必须是句首大写(Sentence case)或全部小写(可按需修改)
  38.     'subject-case': [2, 'always', 'sentence-case'],
  39.     // 7. header(type + scope + subject)总长度不超过 72 字符
  40.     'header-max-length': [2, 'always', 72],
  41.     // 8. body 每行不能超过 72 字符,便于终端阅读和 changelog 显示
  42.     'body-max-line-length': [2, 'always', 72],
  43.     // 9. footer 每行不能超过 72 字符(如 BREAKING CHANGE、issue refs)
  44.     'footer-max-line-length': [2, 'always', 72],
  45.     // 10. footer 前必须有一个空行(与 body 分隔)
  46.     'footer-leading-blank': [2, 'always'],
  47.   }
  48. };
复制代码
  1. echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg
复制代码
测试
  1. git commit -m "Feat(auth): add OAuth2 login support"
复制代码
示例
  1. git commit -m "feat(auth): add OAuth2 login support"
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册