首页 > 解决方案 > 如何在 monorepo 中维护每个模块的自动更改日志?

问题描述

我正在开发一个由多个 git 存储库组成的项目。有多个微服务、一个前端、一些 npm 包和网关容器等。

由于我经常遇到这样的问题,即对于新功能,我必须更改多个存储库中的代码,我在大量的拉取请求中迷失了方向。

为了简化这一点,我正在考虑将存储库移动到单个 monorepo。事实上,我已经将一些 npm 包合并到一个存储库中。

到目前为止,我用于standard-version创建基于 git 提交的变更日志。我仍然希望每个模块有一个变更日志。显然,这不是开箱即用的,standard-version因为它确实检查每个存储库而不是每个模块目录的提交。

是否仍然可以为每个模块创建一个更改日志,例如仅使用受影响目录中的文件的提交消息或在提交消息中使用范围?还有其他想法吗?

通常每个模块都有自己的版本,并不是所有的都是 JS/Node/npm-projects。如果我必须手动管理每个模块的发布也很好。

标签: gitversionmonorepochangelog

解决方案


我不知道您是如何配置存储库的,因为您没有提供任何文件.versionrcpackage.json文件示例,但是有一个.--pathstandard-version

从帮助命令:

npx standard-version --help

我懂了:

--path              Only populate commits made under this path                     [string]

因此,您可以在package.json脚本中使用该选项作为发布命令的参数,也可以将其添加到.versionrc.

如果每个包都有单独的文件,那应该很容易,如果你有一个全局脚本,你应该为每个包设置单独的发布命令,并为每个命令设置每个路径。


推荐阅读