Logo of changelogen

changelogen

使用 Conventional Commits 生成精美更新日志。

使用 Conventional Commits 生成漂亮的更新日志

快速开始

生成 Markdown 格式的更新日志并在控制台中显示

npx changelogen@latest

生成更新日志,更新 package.json 中的版本,并更新 CHANGELOG.md(不提交)

npx changelogen@latest --bump

更新版本,更新 CHANGELOG.md,并进行 git 提交和打标签

npx changelogen@latest --release

CLI 用法

npx changelogen@latest [...args] [--dir <dir>]

参数

  • --from:起始提交引用。如果未提供,默认使用最新的 Git 标签
  • --to:结束提交引用。如果未提供,默认使用HEAD 中的最新提交
  • --dir:Git 仓库路径。如果未提供,默认使用当前工作目录
  • --clean:判断工作目录是否干净,如果不干净则退出。
  • --output:要创建或更新的更新日志文件名。默认为 CHANGELOG.md 并相对于目录解析。使用 --no-output 仅输出到控制台。
  • --bump:确定 semver 更改并更新 package.json 中的版本。
  • --release。更新 package.json 中的版本,并使用本地 git 创建提交和 git 标签。您可以使用 --no-commit 禁用提交,使用 --no-tag 禁用标签。您可以通过添加 --push 来启用自动推送新标签和发布提交到您的 git 仓库。
  • --publish。在 npm 上发布新版本的包。您需要通过 .npmrc 或环境变量单独设置授权令牌。
  • --publishTag:发布时使用自定义 npm 标签(默认为 latest
  • --nameSuffix:为包名添加后缀(示例:--nameSuffix canaryfoo 重命名为 foo-canary
  • --versionSuffix:为包版本添加后缀。当不带值或设置为 true 时,使用日期 + 提交哈希作为后缀。
  • --canary。等同于 --bump --versionSuffix(如果参数具有字符串值,也会添加 --nameSuffix)。
  • -r:发布为特定版本。
  • --major:递增为 semver 主版本
  • --minor:递增为 semver 次版本
  • --patch:递增为 semver 修订版本
  • --premajor:递增为 semver 预主版本,可使用字符串设置 ID。
  • --preminor:递增为 semver 预次版本,可使用字符串设置 ID。
  • --prepatch:递增为 semver 预修订版本,可使用字符串设置 ID。
  • --prerelease:递增为 semver 预发布版本,可使用字符串设置 ID。

changelogen gh release

Changelogen 具有与 GitHub 发布同步的内置功能。

要手动同步发布,您可以使用 changelogen gh release。它将解析当前仓库(本地,然后远程)中的 CHANGELOG.md,并创建或更新发布。

用法

npx changelogen@latest gh release [all|versions...] [--dir] [--token]

要启用此集成,请确保 package.json 中存在有效的 repository 字段,或在 .changelogenrc 中设置了 repo

在未认证模式下,changelogen 默认会打开浏览器链接以进行手动发布。通过提供 GitHub 令牌,可以实现自动化。

  • 使用环境变量或 .env 文件,使用 CHANGELOGEN_TOKENS_GITHUBGITHUB_TOKENGH_TOKEN
  • 使用 CLI 参数,使用 --token <token>
  • 使用全局配置,将 tokens.github=<token> 放入 ~/.changlogenrc
  • 当使用 gh auth login 进行身份验证时,使用 GitHub CLI 令牌

配置

配置由 unjs/c12 从当前工作目录加载。您可以使用 changelog.config.jsonchangelog.config.{ts,js,mjs,cjs}.changelogrc,或者在 package.json 中使用 changelog 字段。

有关可用选项和默认值,请参阅 https://raw.githubusercontent.com/unjs/changelogen/main/src/config.ts

💻 开发

  • 克隆此仓库
  • 使用 corepack enable 启用 Corepack(Node.js < 16.10 请使用 npm i -g corepack
  • 使用 pnpm install 安装依赖项
  • 使用 pnpm dev 运行交互式测试

许可

用心制作 💛

根据 MIT 许可证发布。