如何基于React组件变更生成变更日志(非Git提交)
基于单个React组件生成变更日志的方案与问题
需求概述
我们希望基于单个React组件的变更生成变更日志,不依赖Git提交信息,而是自行编写变更条目,既要能汇总成全局日志,也能在组件层面单独展示。
场景背景
- 基于React.js技术栈,用Storybook管理组件
- 每个组件在每次合并请求(MR)中可能产生变更,需要记录到变更日志
- 希望变更日志既能全局汇总展示,也能在对应组件的页面中单独呈现
放弃直接编辑CHANGELOG.md的原因
- 并行分支开发时,多个分支会同时往CHANGELOG.md的同一位置添加条目,必然引发代码冲突
- 变更记录和组件绑定后,能让组件的变更历史随组件本地展示,更直观清晰
初步解决方案构想
- 给每个组件目录创建
changes.json文件,文件内容为变更条目数组,每个条目对应一次合并请求的变更 - 用glob工具遍历所有组件目录,收集所有
changes.json文件 - 解析所有JSON文件,提取变更条目
- 将所有条目按日期排序后合并,保存为统一的JSON数组,供Storybook导入展示
- 可选:基于合并后的条目生成CHANGELOG.md文件,支持离线查看
changes.json示例:
[ { "date": "2022-09-12", "JIRA": "PRJ-1234", "mergeRequest": 123, "title": "用一句话描述本次合并请求的变更内容" }, { /* 更多变更条目 */ } ]
待解决的问题
- 开发模式(Storybook)下如何合并变更条目?
- 方案1:手动运行Node脚本执行合并操作
- 方案2:利用文件监听机制,在
changes.json文件变更时自动触发脚本,同时可加入JSON结构校验逻辑
- 有没有适配这类需求的NPM库?(注:我们不打算基于Git提交信息生成日志)
- 如何支持Markdown格式的多行正文内容?
- 想用TypeScript定义变更条目的类型,但担心增加解析复杂度,tsc能否提供帮助?
- 其他建议?我们的方案是否过度设计了?
内容的提问来源于stack exchange,提问作者Fabian
相关产品推荐
相关产品推荐

