它是如何工作的

Lerna 允许您使用两种模式来管理您的项目:固定模式(Fixed)或独立模式(Independent)。

固定模式(默认)

固定模式的 Lerna 项目以单一版本来操作。版本信息在lerna.json文件的version处。当您运行lerna publish时,如果自上次发布以来模块已经更新,那么它将被更新为您正在发布的新版本。这意味着您可以按需发布新版本的包.

注意

如果您的主版本是0,那么所有的更新都会被认为是破坏性更新。因此在主版本为0时运行lerna publish并选择任何非预发行版本号将导致对所有包发布新版本,就算并非您的所有的包自上个版本以来都发生了更改也会这样。

这是 Babel 目前使用的模式。如果你想讲所有包版本自动地绑定在一起,请使用该功能。这种方法的一个问题是,任何包中的主要更改都会导致所有的包都有了一个新的主版本。

独立模式

lerna init --independent

独立模式的 Lerna 项目允许维护人员独立地增加包版本号。每次发布时,您都会收到一个提示,用以说明每个更改过的包是补丁(patch)、小更改(minor)、大更改(major)还是自定义更改(custom change)。

独立模式允许您更具体地址更新每个包的版本,对一组组件也有意义。将这种模式与semantic-release结合起来可以方便您的开发。(atlassian/lerna-semantic-release上已有这方面的工作)。

lerna.json中的version设置为independent可以运行独立模式。