首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于lerna monorepo中的所有子包,我能管理相同的版本吗?

对于lerna monorepo中的所有子包,我能管理相同的版本吗?
EN

Stack Overflow用户
提问于 2019-05-01 18:51:10
回答 3查看 3.4K关注 0票数 1
代码语言:javascript
复制
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占位符。构建时间它从根包中选择版本。

请让我知道,如果有任何现有的方法,或我需要写我自己的自定义脚本。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-06-17 14:13:16

基于Lerna文档,如果要在相同版本下发布所有包,则需要使用0 (0)作为lenra.json文件中的主要Lerna版本。

注意:如果您的主版本为零,则所有更新都被认为是中断的。正因为如此,运行一个主要版本为零的lerna发布并选择任何非预发布版本号将导致为所有包发布新版本,即使自上一次发布以来并非所有的包都发生了更改。

这是Babel目前使用的模式。如果要自动将所有包版本绑定在一起,请使用此方法。这种方法的一个问题是,任何包的重大更改都会导致所有包都有一个新的主要版本。

示例:"0“或"0.1.0”

代码语言:javascript
复制
{
  "packages": [
    "packages/*"
  ],
  "useWorkspaces": true,
  "npmClient": "yarn",
  "version": "0"
}
票数 0
EN

Stack Overflow用户

发布于 2019-05-06 15:46:26

这正是勒纳固定/锁定模式所做的事情,这是Lerna项目的默认设置。

固定模式Lerna项目在单一版本行上运行。版本保存在lerna.json文件中,位于项目的根目录下的版本键下。当您运行lerna publish时,如果一个模块自上次发布版本以来就已经更新了,那么它将被更新为您要发布的新版本。这意味着您只在需要时发布包的新版本。

票数 0
EN

Stack Overflow用户

发布于 2020-10-21 12:36:49

您可以使用--force-publish确保所有包都在同一版本下发布。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55941159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档