Сквозные версии
Иногда нужно связать группу пакетов или вообще все пакеты в репозитории одной версией.
Для этого в pvm есть настройки versioning.unified
и versioning.unified_versions_for
.
Настройка versioning.unified
основная, и также влияет на тип релизного тега, но к нему вернемся позже.
По умолчанию versioning.unified
равна false
, а versioning.unified_versions_for
пустому массиву, что означает что все пакеты имеют независимые версии.
Чтобы объединить все пакеты одной версией достаточно выставить versioning.unified
в true
:
[versioning]
unified = true
Если нужно объеденить одной версией только часть пакетов вместо булевого значения можно передать список селекторов пакетов:
[versioning]
unified = [
'/packages/core/*'
'/src/**/*',
]
Если у вас более сложный случай и требуется больше чем одной группы, либо чтобы эта группа не влияла на формирование имени релизного тега используйте
настройку versioning.unified_versions_for
.
Например, можно задать несколько независимых групп пакетов, каждая из которых будет иметь свою сквозную версию. Каждая группа задается с помощью селектора пакетов или массива из таких селекторов:
[versioning]
unified_versions_for = [
'/packages/core/*',
['react', 'react-*'],
]
В данном примере у нас две независимых группы, в каждой из которых будет одна версия на все пакеты в ней:
- Все пакеты в директории
packages/core
. - Пакет
react
, а также все пакеты которые начинаются наreact-
.