如何在 monorepo 中维护每个模块的自动更新日志?

How can I maintain an automatic changelog per module in a monorepo?

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

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

为了简化这一点,我正在考虑将存储库移动到单个 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.

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