pnpm lane

添加于:v11.13.0

管理每个包的发布通道。 “Lane”(通道)是一种并行的发布轨道:当某个包处于该通道时,直接运行 pnpm version -r 会将其发布为 X.Y.Z-<lane>.N 格式的预发布版本,而工作区中的其余包则继续发布稳定版本。将软件包移回主通道后,其累积的稳定版本将在下一次运行时发布。

pnpm lane
pnpm lane <name> --filter <pattern>
pnpm lane main --filter <pattern>

成员配置位于 pnpm-workspace.yaml 文件的 versioning.lanes 键下;该命令是用于编辑此键的便捷工具。

使用方法#

显示通道成员#

pnpm lane
Lanes:
  alpha:
    @example/cli
    @example/napi

如果没有任何软件包被分配到特定通道,则会打印 All packages are on the main lane.

将软件包移动到一个通道#

pnpm lane alpha --filter @example/cli

--filter is required. It selects the packages to move. 通道名称只能包含字母数字和连字符,且不能全为数字。

将软件包移动回主通道#

pnpm lane main --filter @example/cli

main 是默认通道的保留名称。除非另有指定,否则所有软件包都包含在其中,且其中的软件包会发布稳定版本。“毕业”一个包意味着,在下一次执行 pnpm version -r 时,该包将正式发布其预发布版本所指向的稳定版本。

通道上的版本#

发布通道上的软件包版本号格式为 X.Y.Z-<lane>.N,其中 X.Y.Z 是该通道旨在构建的稳定版本号,而 N 从 0 开始递增:

当前版本 待定意图 通道 新版本
2.0.0 minor alpha 2.1.0-alpha.0
2.1.0-alpha.0 patch alpha 2.1.0-alpha.1
2.1.0-alpha.1 major alpha 3.0.0-alpha.0
3.0.0-alpha.0 none main 3.0.0

当稳定目标改变时,N 会从 0 重新开始。 When a bump escalates the target (a major intent while the lane was building a minor), the target is recomputed and the counter resets.

属于同一 固定组 的软件包必须在各个通道之间同步移动。

配置项#

--filter <package_selector&gt;#

选择要在通道间移动的软件包。指定通道时必须进行此操作。

阅读更多有关过滤的内容。