Я пытаюсь создать версию моего 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
, что также не удалось, потому что ни в одном из версионных пакетов не было сценария для запуска сервера.
Я не могу предоставить версионным пакетам скрипт для запуска сервера, поскольку сервер является общим для всех версии кода.
Можно ли вообще сделать то, что я пытаюсь достичь? Это хороший способ двигаться вперед?
Спасибо.