Лучшая практика работы с пряжей при использовании lib - PullRequest
3 голосов
/ 09 апреля 2020

У меня есть общий (или не очень общий) сценарий для yarn workspaces, и я не нашел подходящего для меня руководства в Интернете.

рабочие области пряжи выглядят так:

 - monorepo
   - packages
     - client
     - admin
     - theme
     - lib 
  1. Клиент используется в качестве наших конечных пользователей, это реактивный проект
  2. Admin используется в качестве бэк-офиса для пользователей с правами администратора и также встроен в реагирующий
  3. Тема используется для всех комплектов пользовательского интерфейса (компонентов) и сборника рассказов. Мы используем комплект пользовательского интерфейса в проектах client и admin, и это classi c «стиль monorepo» (lerna) для разделения компонентов между двумя проектами. Эта папка должна быть общей только для этого проекта.
  4. Lib используется для всех API и совместно используется "Business logi c" между несколькими проектами. У меня есть 4 проекта, которые используют те же функциональные возможности lib для запросов API, аутентификации, Redux и др.

Дополнительная информация:

  • monorepo - это root хранилище с .gitmodules
  • Каждая подпапка является отдельным git репозиторием
  • Мы используем рабочие пространства для упрощения разработки на theme и на client и admin проекте на

Вопросы:

Мы запускаем yarn start только в client проекте и admin проекте. Оба проекта используют одинаковую theme и одинаковую lib функциональность. Поскольку lib используется совместно с другими проектами, он обновляется еженедельно:

  1. Как я могу предотвратить его обновление из проекта в проект? я должен работать с tags в git репозитории или я должен удалить lib из рабочего пространства monorepo и работать с ним как npm package (весь смысл в простом процессе разработки, когда мы изменяем файл lib нам не нужно npm update это снова и снова.
  2. Если lib будет npm пакетом, как я могу сказать monorepo использовать рабочие пространства при запуске yarn start и использовать npm версия, когда я запускаю yarn build?

Пожалуйста, советуйте лучшие практики для этого сценария.

Заранее спасибо, Лев.

1 Ответ

0 голосов
/ 18 апреля 2020

Вот мои личные предпочтения.

- monorepo
   - packages
     - client
     - admin
     - core

Я думаю, что lib можно перенести в ядро, и тема для меня больше похожа на npm пакет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...