my-lerna-repo/
package.json
packages/
package-1/
package.json
package-2/
package.json
dependencies: {
package-1
}
我想为所有子软件包保持一致的版本。另外,子包中有交叉依赖项。
我想实现与角度相似的效果。
https://github.com/angular/angular
他们仅在根级别管理软件包版本,并在所有子软件包中提及0.0.0-PLACEHOLDER。构建时会从根包中选择版本。
请告诉我是否有任何现有方法可以执行此操作,或者我需要编写自己的自定义脚本。
答案 0 :(得分:0)
Lerna正是Fixed/Locked mode的工作,这是Lerna项目的默认设置。
固定模式Lerna项目在单个版本行上运行。版本保存在项目根目录下版本密钥下的
lerna.json
文件中。当您运行lerna publish
时,如果某个模块自上次发布以来已被更新,它将被更新为您要发布的新版本。这意味着您仅在需要时才发布软件包的新版本。
答案 1 :(得分:0)
您可以使用--force-publish
来确保所有软件包都发布在同一版本下。
答案 2 :(得分:0)
根据 Lerna 文档,如果您想在同一版本下发布所有包,您需要使用零 (0) 作为 lenra.json 文件中的主要 Lerna 版本。
<块引用>注意:如果您的主要版本为零,则所有更新都被视为中断。因此,运行主版本为零的 lerna publish 并选择任何非预发布版本号将导致为所有包发布新版本,即使自上次发布以来并非所有包都已更改。
这是 Babel 当前使用的模式。如果您想自动将所有软件包版本绑定在一起,请使用此选项。这种方法的一个问题是,任何包的重大更改都会导致所有包都有一个新的主要版本。
示例:“0”或“0.1.0”
{
"packages": [
"packages/*"
],
"useWorkspaces": true,
"npmClient": "yarn",
"version": "0"
}