Могу (и должен) я использовать Lerna без публикации в NPM? - PullRequest
0 голосов
/ 14 марта 2020

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

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

моей структурой:

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

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

. Правильно ли здесь использовать Лерну?

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

1 Ответ

0 голосов
/ 14 марта 2020

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

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

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

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

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

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

Go обратно в каталог root app и выполнить команду yarn. Это разрешит все зависимости для всех пакетов. Теперь вы можете использовать my-app внутри сборника рассказов без необходимости использования Lerna.

...