4.5 KiB
4.5 KiB
Changesets Changelog 字段详解和实际效果
1. 基本概念
changelog 字段控制 Changesets 如何生成每个包的 CHANGELOG.md 文件。不同的配置会产生不同格式的 changelog。
2. 本项目的配置分析
当前配置
{
"changelog": ["@changesets/changelog-github", {
"repo": "user/repo-name" // 需要替换为实际的 GitHub 仓库
}]
}
配置说明
@changesets/changelog-github: 使用 GitHub 风格的 changelog 生成器repo: 指定 GitHub 仓库,用于生成链接
3. 不同配置的效果对比
3.1 默认配置 (简单格式)
{
"changelog": "@changesets/cli/changelog"
}
生成的 CHANGELOG.md 示例:
# mcp-swagger-server
## 1.0.10
### Minor Changes
- Added new authentication feature
### Patch Changes
- Fixed bug in parser
- Updated dependencies
3.2 GitHub 配置 (带链接格式)
{
"changelog": ["@changesets/changelog-github", {
"repo": "yourname/mcp-swagger-server"
}]
}
生成的 CHANGELOG.md 示例:
# mcp-swagger-server
## 1.0.10
### Minor Changes
- [#123](https://github.com/yourname/mcp-swagger-server/pull/123) [`a1b2c3d`](https://github.com/yourname/mcp-swagger-server/commit/a1b2c3d) Thanks [@contributor](https://github.com/contributor)! - Added new authentication feature
### Patch Changes
- [#124](https://github.com/yourname/mcp-swagger-server/pull/124) [`e4f5g6h`](https://github.com/yourname/mcp-swagger-server/commit/e4f5g6h) Thanks [@maintainer](https://github.com/maintainer)! - Fixed bug in parser
- Updated dependencies
- mcp-swagger-parser@1.0.6
3.3 禁用 changelog
{
"changelog": false
}
效果: 不生成 CHANGELOG.md 文件
4. 实际工作流程示例
4.1 开发者添加 changeset
pnpm changeset
交互式选择:
? Which packages would you like to include?
✓ mcp-swagger-server
✓ mcp-swagger-parser
? Which packages should have a major bump?
(none selected)
? Which packages should have a minor bump?
✓ mcp-swagger-server
? Which packages should have a patch bump?
✓ mcp-swagger-parser
? Please enter a summary for this change:
Added Bearer token authentication support and fixed parser edge cases
生成的 .changeset 文件:
---
"mcp-swagger-server": minor
"mcp-swagger-parser": patch
---
Added Bearer token authentication support and fixed parser edge cases
4.2 发布时的 changelog 生成
运行 pnpm changeset version 后:
mcp-swagger-server/CHANGELOG.md:
# mcp-swagger-server
## 1.1.0
### Minor Changes
- [#45](https://github.com/yourname/mcp-swagger-server/pull/45) [`abc123`](https://github.com/yourname/mcp-swagger-server/commit/abc123) Thanks [@developer](https://github.com/developer)! - Added Bearer token authentication support and fixed parser edge cases
### Patch Changes
- Updated dependencies
- mcp-swagger-parser@1.0.6
mcp-swagger-parser/CHANGELOG.md:
# mcp-swagger-parser
## 1.0.6
### Patch Changes
- [#45](https://github.com/yourname/mcp-swagger-server/pull/45) [`abc123`](https://github.com/yourname/mcp-swagger-server/commit/abc123) Thanks [@developer](https://github.com/developer)! - Added Bearer token authentication support and fixed parser edge cases
5. 高级配置选项
5.1 自定义 changelog 生成器
{
"changelog": ["./custom-changelog.js", {
"customOption": "value"
}]
}
5.2 社区 changelog 生成器
{
"changelog": ["@changesets/changelog-git", {
"showAuthor": true,
"showDate": true
}]
}
6. 本项目的最佳实践建议
6.1 更新配置
将当前的 "repo": "user/repo-name" 替换为实际仓库:
{
"changelog": ["@changesets/changelog-github", {
"repo": "yourname/mcp-swagger-server"
}]
}
6.2 安装依赖
pnpm add -D @changesets/changelog-github
6.3 验证配置
# 添加测试 changeset
pnpm changeset
# 生成版本和 changelog
pnpm changeset version
# 查看生成的 changelog
cat packages/mcp-swagger-server/CHANGELOG.md
7. 常见问题
7.1 链接不生成
- 检查
repo配置是否正确 - 确保安装了
@changesets/changelog-github
7.2 格式不符合预期
- 检查 changeset 文件的格式
- 确保 commit 信息规范
7.3 依赖更新不显示
- 检查包之间的依赖关系
- 确保 workspace 配置正确
通过这样的配置,你的项目就能自动生成专业的、带有链接的 changelog,便于用户了解每次更新的内容。