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 canary
将foo
重命名为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 发布
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_GITHUB
或GITHUB_TOKEN
或GH_TOKEN
- 使用 CLI 参数,使用
--token <token>
- 使用全局配置,将
tokens.github=<token>
放入~/.changlogenrc
文件中 - 当通过 GitHub CLI 认证时,使用
gh auth login
令牌
配置
配置由 unjs/c12 从当前工作目录 (cwd) 加载。你可以使用 changelog.config.json
、changelog.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 许可证发布。