@sumdoo/commitlint-config

1.0.5 • Public • Published

@sumdoo/commitlint-config

用法


安装

pnpm add @commitlint/cli
pnpm add @sumdoo/commitlint-config
pnpm add husky

配置 commitlint-config

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

配置 git hook

// 挂载钩子
npx husky install

// 增加提交前代码校验
npx husky add .husky/pre-commit 'pnpm lint'

// 增加提交信息校验钩子
npx husky add .husky/commit-msg 'npx commitlint --edit "$1"'

配置 package.json

{
    "scripts": {
        // 仅允许使用 pnpm 安装
        "preinstall": "npx only-allow pnpm",

        // 使用 pnpm install 时,挂载 git 钩子
        "prepare": "husky install",
    }
}

提交约定

提交约定允许为 git 历史添加更多语义含义借助这些附加信息,工具可以为项目版本获取有用的人类可读信息

例如:

  • 自动化、丰富的变更日志
  • 自动版本升级
  • 筛选要运行的测试工具

最常见的提交约定遵循这种模式:

type(scope?): subject
body?
footer?

type

必填项,用于说明本次提交做出哪种类型的修改,必须是以下任意一值:

  • fix (一个新功能)
  • feat (错误修复)
  • ui (页面样式变更)
  • docs (仅文档更改)
  • style (不影响代码含义的更改:空格、格式、缺少分号等)
  • refactor (重构,既不修复错误也不添加功能的代码更改)
  • perf (提高性能的代码更改)
  • test (添加缺失或纠正现有测试)
  • revert (撤销上一次提交)
  • chore (对构建过程或辅助工具和库的更改,例如文档生成)

scope

可选项,用于说明本次提交中影响的范围(feat、fix、ui、refactor、perf 推荐全局范围使用 global

建议一次提交中仅包含一处修改,阅读提交信息时会更详细

多个范围,当前的分隔符选项有:

  • “/”
  • “\”
  • “,”

subject

必填项,用于简要地描述本次提交中所做出的修改。而且需要满足格式:

  • 如果用英文描述,则英文单词只能是一般现在时或者祈使语气
  • 首字母不能大写
  • 不能以.作为结尾

body

选填项,相对于上述的subject,body用于更加详细的描述本次提交中所做出的修改。其中需要包括本次修改的动机以及对比于修改之前的改进之处。

footer

选填项,主要包括以下两点:

  • break changes:任何关于与上个版本不兼容的更改(breaking change)的信息,例如版本升级、数据字段更改、接口参数变化等。如果存在breaking change,则需要以 BREAKING CHANGE: 开头后接空格或者两行新行后,写清楚更改的内容。

  • affect issues:指明本次修改是否针对某次issues。

参考链接

Readme

Keywords

Package Sidebar

Install

npm i @sumdoo/commitlint-config

Weekly Downloads

0

Version

1.0.5

License

ISC

Unpacked Size

8.57 kB

Total Files

3

Last publish

Collaborators

  • beckzgh