Публикация Monorepo с помощью lerna и бота развертывания

Вот сценарий:

Нам нужен монорепозиторий для нескольких компонентов, и мы хотели бы использовать для него 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"
  }
}

person Jakob Runge    schedule 16.11.2017    source источник


Ответы (2)


Я в одной лодке. Функция не существует. В идеале у Лерны должен быть аргумент, который вы могли бы передать, чтобы не указывать номера версий. Лучше всего пошуметь над проектом на Github: https://github.com/lerna/lerna/issues

person Scotty    schedule 29.11.2017
comment
Спасибо за указатель! Я не совсем уверен, отсутствовала ли эта функция или просто что-то могло быть достигнуто с помощью каких-то загадочных аргументов командной строки. - person Jakob Runge; 03.12.2017

Для всех, кому нужна эта функция, похоже, они работают над ней для версии 3.0:

Отдельные команды «версия» и «публикация» - https://github.com/lerna/lerna/issues/961

person John L-L    schedule 06.06.2018
comment
Начиная с версии 3.0, эта функция теперь доступна. - person David R.; 09.01.2019