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>#
选择要在通道间移动的软件包。指定通道时必须进行此操作。