我一直在手动管理我的软件包版本和
changelog.md
文件,直至 5.2.0。现在我正在尝试集成 Lerna 来管理我的包裹,但在执行此操作时遇到问题。
问题:
lerna version --conventional-commits
,
Lerna 将其视为首次版本更新。因此,它在变更日志中包含了所有提交消息作为重大更改和错误修复,即使我已经维护了一个手动 changelog.md
文件直至版本 5.2.0,其中所有提交消息都已存在。
我如何使用 Lerna,使其不会生成旧的提交消息作为重大更改,而是期望 Lerna 仅将版本更新为补丁版本 5.2.0 -> 5.2.1,并期望它仅在之后生成提交消息仅限 5.2.0。就我而言,提交消息是
fix(styles): Automating the versioning using lerna.
Files present in commit messages are
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'