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 许可证发布。