我一直在手动管理我的软件包版本和changelog.md文件,直到5.2.0。现在我正在尝试集成 lerna 来管理我的包,但遇到了这样做的问题,
问题:lerna 版本 --conventional-commits , lerna 将其视为首次版本更新。因此,它在变更日志中包含了所有提交消息作为重大变更和错误修复,即使我已经维护了一个手动的 Changelog.md 文件直至版本 5.2.0 并且所有提交消息都已存在于其中。
我如何使用 lerna 使其不会生成旧的提交消息作为重大更改,而是 lerna 应该将版本更新为补丁版本仅 5.2.0 -> 5.2.1 并且它应该仅在 5.2.0 之后生成提交消息。就我而言,提交消息是
fix(styles):使用 lerna 自动进行版本控制。 提交消息中存在的文件是 package.json,package-lock.json,lerna.json,
对于实现这一目标的任何帮助,我们将不胜感激。 谢谢你
这是一个已知问题,在
lerna version
文档中也提到过,但是在新的Lerna中,这些命令文档被隐藏起来(您可以从他们的网站打开命令文档)或者如果您使用Lerna-Lite 然后所有文档都可以从主页获得。
如果您遇到问题,这是您需要的文档部分,
lerna version
提示 - 常规更改日志
生成初始变更日志 如果您在 monorepo 激活一段时间后开始使用
--conventional-commits
选项,您仍然可以使用 conventional-changelog-cli
和 lerna exec
生成以前版本的变更日志:
# Lerna does not actually use conventional-changelog-cli, so you need to install it temporarily
npm i -D conventional-changelog-cli
# Documentation: `npx conventional-changelog --help`
# fixed versioning (default)
# run in root, then leaves
npx conventional-changelog --preset angular --release-count 0 --outfile ./CHANGELOG.md --verbose
npx lerna exec --concurrency 1 --stream -- 'conventional-changelog --preset angular --release-count 0 --commit-path $PWD --pkg $PWD/package.json --outfile $PWD/CHANGELOG.md --verbose'
# independent versioning
# (no root changelog)
npx lerna exec --concurrency 1 --stream -- 'conventional-changelog --preset angular --release-count 0 --commit-path $PWD --pkg $PWD/package.json --outfile $PWD/CHANGELOG.md --verbose --lerna-package $LERNA_PACKAGE_NAME'