Похоже, что Lerna 3.20.2
не может выдавать предварительные версии (например, 1.0.0-alpha.0
) в соответствии со спецификацией обычных комитетов .
Я сделал Пример минимальной воспроизводимости , если вы хотите попробовать это.
Допустим, у нас есть два репозитория, управляемых Lerna, оба с тремя подпакетами. В одном репо есть «производственные» пакеты, в другом - «предварительные»:
dev (or dev-prerelease)
|-- packages
| |-- major
| | |-- package.json (1.0.0 or 1.0.0-alpha.0)
| |-- minor
| | |-- package.json (1.0.0 or 1.0.0-alpha.0)
| |-- patch
| | |-- package.json (1.0.0 or 1.0.0-alpha.0)
|-- package.json
|-- lerna.json
Затем я делаю следующие коммиты в обоих репозиториях: (коммиты следуют спецификации обычных коммитов)
- Срочные изменения в основном пакете
- Новая функция в вспомогательном пакете
- Исправление ошибки в пакете исправлений
И выполните эту команду в обоих репозиториях :
npx lerna publish --conventional-commits --yes 2>/dev/null
Наблюдения
В «производственном» репо обновляются его пакеты в соответствии с обычными комиссиями спец. c:
Changes:
- major: 1.0.0 => 2.0.0 (private)
- minor: 1.0.0 => 1.1.0 (private)
- patch: 1.0.0 => 1.0.1 (private)
Однако в предварительном репо все пакеты просто «пропатчены»:
Changes:
- major: 1.0.0-alpha.0 => 1.0.0-alpha.1 (private)
- minor: 1.0.0-alpha.0 => 1.0.0-alpha.1 (private)
- patch: 1.0.0-alpha.0 => 1.0.0-alpha.1 (private)
Тема в этом выпуске GitHub , кажется, предполагает, что это ошибка (но я не уверен).
Вопрос Я бы хотел, чтобы пакеты в моем репо "prerelease" обновлялись так же, как в репо "production", сохраняя при этом их пререлизный суффикс. Что я здесь не так делаю?
Вы также можете следить за этой проблемой GitHub , которую я поднял