Использование lerna в качестве менеджера версий API - PullRequest
1 голос
/ 31 января 2020

Я пытаюсь создать версию моего API (/ v1 / route, / v2 / route ...) с другим подходом, и я чувствую, что lerna сможет выполнить эту работу.

Структура кода в формате:

src/
  commons/
    common files // files that can be used in any version.
  v1/
    code modules // files corresponding to v1 of API
    package.json
    package-lock.json
  v2/
    code modules // files corresponding to v2 of API
    package.json
    package-lock.json
lerna.json
package.json
package-lock.json
server.js

lerna. json:

{
  "packages": ["src/**"],
  "version": "0.0.0"
}

В принципе, у меня 2 цели:

  • Каждая версия должна иметь свой собственный независимый node_modules / и должна использовать это. Общий код и код на уровне root проекта должны использовать node_modules / из root проекта.
  • Код должен запускаться с сервера. js в root проекта. (node server.js)

Давайте также рассмотрим, что:

- package.json at root of the folder has packageA (v1.0.0), packageB (v1.0.0), packageC (v1.0.0). It also has all the scripts: start, test etc.
- package.json in v1 has packageA (v2.0.0), packageC (v3.0.0). No scripts.
- package.json in v2 has packageB (v1.0.0), packageC (v3.0.0). No scripts.

Я пытался установить пакеты root с npm i и затем lerna bootstrap. Затем попытался запустить сервер с node server.js, что было глупо с моей стороны, потому что для этого нужно передать управление lerna. Поэтому я попытался lerna run start, что также не удалось, потому что ни в одном из версионных пакетов не было сценария для запуска сервера.

Я не могу предоставить версионным пакетам скрипт для запуска сервера, поскольку сервер является общим для всех версии кода.

Можно ли вообще сделать то, что я пытаюсь достичь? Это хороший способ двигаться вперед?

Спасибо.

...