如果我有一个带有packageA
和packageB
的单存储库,后者依赖于前者。如果我然后运行lerna version major
,例如,导致packageA
的版本号被碰撞,那么在packageB
的package.json
中列出对它的依赖关系是否也会自动碰撞,还是应该手动完成?
(我尝试设置一个测试存储库来执行此操作,但后来 Lerna 抱怨它还没有遥控器,所以我希望有使用 Lerna 经验的人知道答案。
为了这个答案,我假设你没有使用传统的提交。如果我假设错误,请随时回复更多细节。
TL;博士
是的,如果运行lerna version major
_all存储库中的包将更新到新的主要版本,并且packageB
的package.json
文件将使用packageA
的新版本号进行更新。
详
假设您的 monorepo 中有packageA
和packageB
包,并且它们有如下所示package.json
文件:
# packageA/package.json
{
"name": "packageA",
"version": "1.0.0,"
}
# packageB/package.json
{
"name": "packageB",
"version": "1.0.0",
"dependencies": {
"packageA": "^1.0.0"
}
}
当您运行'lerna版本专业时:
packageA/package.json
中的version
字段将更新为2.0.0
packageB/package.json
中的version
字段将更新为2.0.0
packageB/package.json
中的dependencies.packageA
字段将更新为^2.0.0
# packageA/package.json
{
"name": "packageA",
"version": "2.0.0,"
}
# packageB/package.json
{
"name": "packageB",
"version": "2.0.0",
"dependencies": {
"packageA": "^2.0.0"
}
}