commitlint.config.cjs 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /* eslint-env node */
  2. module.exports = {
  3. // 继承的规则
  4. extends: ['@commitlint/config-conventional'],
  5. // 自定义规则
  6. rules: {
  7. // @see https://commitlint.js.org/#/reference-rules
  8. // 提交类型枚举,git提交type必须是以下类型
  9. 'type-enum': [
  10. 2,
  11. 'always',
  12. [
  13. 'feat', // 新增功能
  14. 'fix', // 修复缺陷
  15. 'docs', // 文档变更
  16. 'style', // 代码格式(不影响功能,例如空格、分号等格式修正)
  17. 'refactor', // 代码重构(不包括 bug 修复、功能新增)
  18. 'perf', // 性能优化
  19. 'test', // 添加疏漏测试或已有测试改动
  20. 'build', // 构建流程、外部依赖变更(如升级 npm 包、修改 webpack 配置等)
  21. 'ci', // 修改 CI 配置、脚本
  22. 'revert', // 回滚 commit
  23. 'chore' // 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)
  24. ]
  25. ],
  26. 'subject-case': [0] // subject大小写不做校验
  27. },
  28. prompt: {
  29. messages: {
  30. type: '选择你要提交的类型 :',
  31. scope: '选择一个提交范围(可选):',
  32. customScope: '请输入自定义的提交范围 :',
  33. subject: '填写简短精炼的变更描述 :\n',
  34. body: '填写更加详细的变更描述(可选)。使用 "|" 换行 :\n',
  35. breaking: '列举非兼容性重大的变更(可选)。使用 "|" 换行 :\n',
  36. footerPrefixesSelect: '选择关联issue前缀(可选):',
  37. customFooterPrefix: '输入自定义issue前缀 :',
  38. footer: '列举关联issue (可选) 例如: #31, #I3244 :\n',
  39. generatingByAI: '正在通过 AI 生成你的提交简短描述...',
  40. generatedSelectByAI: '选择一个 AI 生成的简短描述:',
  41. confirmCommit: '是否提交或修改commit ?'
  42. },
  43. // prettier-ignore
  44. types: [
  45. { value: "feat", name: "特性: ✨ 新增功能", emoji: ":sparkles:" },
  46. { value: "fix", name: "修复: 🐛 修复缺陷", emoji: ":bug:" },
  47. { value: "docs", name: "文档: 📝 文档变更", emoji: ":memo:" },
  48. { value: "style", name: "格式: 🌈 代码格式(不影响功能,例如空格、分号等格式修正)", emoji: ":lipstick:" },
  49. { value: "refactor", name: "重构: 🔄 代码重构(不包括 bug 修复、功能新增)", emoji: ":recycle:" },
  50. { value: "perf", name: "性能: 🚀 性能优化", emoji: ":zap:" },
  51. { value: "test", name: "测试: 🧪 添加疏漏测试或已有测试改动", emoji: ":white_check_mark:"},
  52. { value: "build", name: "构建: 📦️ 构建流程、外部依赖变更(如升级 npm 包、修改 vite 配置等)", emoji: ":package:"},
  53. { value: "ci", name: "集成: ⚙️ 修改 CI 配置、脚本", emoji: ":ferris_wheel:"},
  54. { value: "revert", name: "回退: ↩️ 回滚 commit",emoji: ":rewind:"},
  55. { value: "chore", name: "其他: 🛠️ 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)", emoji: ":hammer:"},
  56. ],
  57. useEmoji: true,
  58. emojiAlign: 'center',
  59. useAI: false,
  60. aiNumber: 1,
  61. themeColorCode: '',
  62. scopes: [],
  63. allowCustomScopes: true,
  64. allowEmptyScopes: true,
  65. customScopesAlign: 'bottom',
  66. customScopesAlias: 'custom',
  67. emptyScopesAlias: 'empty',
  68. upperCaseSubject: false,
  69. markBreakingChangeMode: false,
  70. allowBreakingChanges: ['feat', 'fix'],
  71. breaklineNumber: 100,
  72. breaklineChar: '|',
  73. skipQuestions: [],
  74. issuePrefixes: [{ value: 'closed', name: 'closed: ISSUES has been processed' }],
  75. customIssuePrefixAlign: 'top',
  76. emptyIssuePrefixAlias: 'skip',
  77. customIssuePrefixAlias: 'custom',
  78. allowCustomIssuePrefix: true,
  79. allowEmptyIssuePrefix: true,
  80. confirmColorize: true,
  81. maxHeaderLength: Infinity,
  82. maxSubjectLength: Infinity,
  83. minSubjectLength: 0,
  84. scopeOverrides: undefined,
  85. defaultBody: '',
  86. defaultIssues: '',
  87. defaultScope: '',
  88. defaultSubject: ''
  89. }
  90. }