pnpm lane

Додано у: v11.13.0

Керує лініями випуску для окремих пакунків. Лінія — це паралельний канал випуску: поки пакунок перебуває на одній із ліній, команда pnpm version -r випускає його як попередню версію X.Y.Z-<lane>.N, тоді як решта робочого простору продовжує випускати стабільні версії. Переміщення пакунка назад на головну (main) лінію призводить до випуску його накопиченої стабільної версії під час наступного запуску.

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

Налаштування членства зберігаються в ключі versioning.lanes файлу pnpm-workspace.yaml; ця команда є зручним редактором для цього ключа.

Використання#

Показати приналежність до лінії#

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

Якщо жодному пакунку не було призначено лінію, на екрані з’явиться повідомлення: All packages are on the main lane (Усі пакунки знаходяться на лінії main).

Переміщення пакунків до лінії#

pnpm lane alpha --filter @example/cli

--filter is required. It selects the packages to move. Назви ліній можуть містити лише літери, цифри та дефіси; вони не можуть складатися виключно з цифр.

Переміщення пакунків назад до лінії main#

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;#

Визначає пакунки, які потрібно переместити між лініями. Є обовʼязковим під час призначення лінії.

Читайте більше про фільтрування.