Могу ли я (и должен) использовать Lerna без публикации в NPM?

У меня есть приложение и сборник рассказов. В данный момент они оба живут в одном приложении. Я только что установил Lerna и поиграл, поэтому я могу рассматривать их как два отдельных пакета.

Оба пакета будут докеризованы, и когда я соберу один, он ничего не должен делать с другим.

моя структура до сих пор:

app/
  package.json
  lerna.json
  makefile
  packages/
    my-app/
      all-relevant-packages-for-my-app
      package.json
    storybook/
      all-relevant-packages-for-storybook
      package.json

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

правильно ли здесь использовать Lerna?

когда я запускаю, скажем, docker build my-app, он должен войти в репозиторий my-app, а затем создать образ докера и т. д., запустить тесты и развернуть мое приложение на S3 (все это уже настроено), но теперь я все это переместил, мне интересно, если Lerna это правильный инструмент, так как я вижу много о публикации в NPM


person Red Baron    schedule 14.03.2020    source источник


Ответы (1)


Вам не нужно использовать Lerna в вашем случае. Я бы порекомендовал вам использовать Yarn Workspaces. Давайте установим yarn, а затем добавим

"workspaces": [
   "packages/*"
 ],

в ваш основной файл package.json. С этого момента пряжа будет обрабатывать зависимости пакетов.

В вашем случае введите package.json из my-app и измените его имя, например, на `@приложение/мое-приложение'. Проверьте версию my-app в package.json (сейчас я предполагаю, что это 1.0.0).

Сделайте то же самое с storybook, изменив его имя, например, на @app/storybook. Затем вы можете добавить зависимость в файл package.json сборника рассказов:

"dependencies": {
   "@app/my-app": "1.0.0"
   ...
}

Вернитесь в корневой каталог app и выполните команду yarn. Он разрешит все зависимости для всех пакетов. Теперь вы можете использовать мое приложение внутри сборника рассказов без необходимости использования Lerna.

person Maciej Kocik    schedule 14.03.2020