Вот сценарий:
Нам нужен монорепозиторий для нескольких компонентов, и мы хотели бы использовать для него lerna с рабочими пространствами yarn.
Чтобы гарантировать отсутствие проблем с семантическим управлением версиями, было бы неплохо иметь обзоры кода и для номеров версий. Таким образом, package.json
определяет version-bump
сценарий, который должен использоваться только для увеличения версий пакета.
После того, как тесты будут запущены и CR будет в порядке, мы хотели бы, чтобы бот для развертывания опубликовал пакеты в нашем настраиваемом реестре для нас. Для этого было бы неплохо использовать lerna publish --skip-git
, чтобы lerna публиковала только измененные пакеты.
Проблема здесь в том, что lerna publish
не просто публикует пакеты, а снова запрашивает приращение их версии. Было бы неплохо узнать о варианте или обходном пути для публикации без увеличения версии.
Наш текущий обходной путь - использовать lerna exec npm publish
, но это попытается снова опубликовать уже опубликованные пакеты. Мы также не можем использовать lerna exec yarn publish
, потому что в этом случае yarn
запрашивает приращение версии.
Настройка выглядит так:
lerna.json:
{
"lerna": "2.5.1",
"version": "independent",
"npmClient": "yarn",
"useWorkspaces": true,
"packages": [
"packages/*"
]
}
package.json
{
"name": "…",
"version": "0.0.0",
"description": "…",
"main": "index.js",
"repository": {
"type": "git",
"url": "…"
},
"workspaces": [
"packages/*"
],
"private": true,
"scripts": {
"version-bump": "./node_modules/lerna/bin/lerna.js publish --skip-npm",
"test": "echo well tested"
},
"devDependencies": {
"lerna": "^2.5.1"
}
}