git - 如何在 monorepo 中维护每个模块的自动更改日志?
问题描述
我正在开发一个由多个 git 存储库组成的项目。有多个微服务、一个前端、一些 npm 包和网关容器等。
由于我经常遇到这样的问题,即对于新功能,我必须更改多个存储库中的代码,我在大量的拉取请求中迷失了方向。
为了简化这一点,我正在考虑将存储库移动到单个 monorepo。事实上,我已经将一些 npm 包合并到一个存储库中。
到目前为止,我用于standard-version
创建基于 git 提交的变更日志。我仍然希望每个模块有一个变更日志。显然,这不是开箱即用的,standard-version
因为它确实检查每个存储库而不是每个模块目录的提交。
是否仍然可以为每个模块创建一个更改日志,例如仅使用受影响目录中的文件的提交消息或在提交消息中使用范围?还有其他想法吗?
通常每个模块都有自己的版本,并不是所有的都是 JS/Node/npm-projects。如果我必须手动管理每个模块的发布也很好。
解决方案
我不知道您是如何配置存储库的,因为您没有提供任何文件.versionrc
或package.json
文件示例,但是有一个.--path
standard-version
从帮助命令:
npx standard-version --help
我懂了:
--path Only populate commits made under this path [string]
因此,您可以在package.json
脚本中使用该选项作为发布命令的参数,也可以将其添加到.versionrc
.
如果每个包都有单独的文件,那应该很容易,如果你有一个全局脚本,你应该为每个包设置单独的发布命令,并为每个命令设置每个路径。
推荐阅读
- c# - 在 C# 列表中使用 `static readonly T[] _emptyArray = new T[0]` 作为零值
执行 - javascript - 如何使图像区域包含html css javascript中的链接?
- java - 二进制搜索有一些问题有人可以看看吗?
- swagger - 有没有办法在 swagger/openAPI 3.0 文档中并排显示“示例值”和“架构”?
- python - 如何在 discord.py 中进行事件以给出反应?
- oracle-apex - 通过 Apex 项目复选框检查要在项目字段中存储值
- spring-boot - 非法字符导致spring boot微服务构建在docker镜像创建过程中失败
- angular8 - ag-grid:当列可编辑时如何在 ag-grid 中获取旧值和新值
- java - 我可以在 POI 库的 CellRangeAddressList 中传递列地址列表吗?
- windows - 如何发送电子邮件,因为我有很多错误。谢谢