Changelog 自动生成后格式乱了怎么办?

___依诺 阅读 29

我用 standard-version 生成 changelog,但提交记录里的中文换行全没了,看起来特别挤。明明 commit 写的时候有换行,为啥生成的 CHANGELOG.md 全变成一行了?

试过改 .versionrc 配置,也查了 conventional-changelog 的文档,还是没搞定。有人遇到过类似问题吗?

{
  "types": [
    { "type": "feat", "section": "✨ 新功能" },
    { "type": "fix", "section": "🐛 修复" }
  ],
  "commitUrlFormat": "https://xxx/commits/{{hash}}"
}
我来解答 赞 17 收藏
二维码
手机扫码查看
2 条解答
Designer°东俊
这个我也遇到过,standard-version 处理中文换行确实有点坑。试试在 .versionrc 里加个 header 配置,像这样:

{
"header": "# Changelognn",
"types": [
{ "type": "feat", "section": "✨ 新功能" },
{ "type": "fix", "section": "🐛 修复" }
]
}


关键是那个 nn,记得要转义。如果还不行,可以试试强制指定换行符:

// package.json 的 scripts 里加上
"release": "cross-env GIT_PAGER=cat standard-version"


安全提示:改这些配置前最好先备份现有的 CHANGELOG.md,万一格式更乱了还能回滚。另外注意别把敏感信息(比如内网地址)写在 commit 消息里,生成 changelog 时会暴露。
点赞
2026-03-10 10:09
Newb.文君
这玩意儿底层用的是 conventional-changelog,默认把 commit body 当成一个段落处理,单换行会被合并成空格。省事的话,写 commit 的时候直接敲两个回车(空一行)来分段,别指望它能保留你的排版。非要保留单换行得去写自定义模板,太折腾了。
点赞 1
2026-03-04 15:44