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 是必需的 —— 它选择要移动的软件包。 通道名称只能包含字母数字和连字符,且不能全为数字。
将软件包移动回主通道
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 | — | main | 3.0.0 |
当稳定目标改变时,N 会从 0 重新开始。 当突发事件导致目标升级时(例如,在通道正在构建次要目标时,突然出现主要目标),目标会被重新计算,计数器也会重置。
属于同一 固定组 的软件包必须在各个通道之间同步移动。
配置项
--filter <package_selector>
选择要在通道间移动的软件包。 指定通道时必须进行此操作。