Совместное использование домена Monorepo Vue Nestjs и объектов платформы

#nestjs #monorepo

#nestjs #monorepo

Вопрос:

Цель:

  • Используйте структуру monorepo, в которой я могу совместно использовать модели домена и общие реализации (используя шаблон поставщика) в разных ограниченных контекстах
  • Возможность развертывания каждого ограниченного контекста или клиентского приложения независимо от других (таким образом, все это в монолите в одном src каталоге неприемлемо.

Предыстория: Типичными техническими стеками для меня являются Angular .Net Core. Я начинаю отходить от Angular, а также изучаю преимущества совместного использования кода, если я буду разрабатывать свой API с помощью Nestjs.

Я пытаюсь найти наилучший способ настройки общего кода между клиентом и API и сталкиваюсь с некоторыми проблемами.

У меня следующая структура каталогов. Я хотел бы найти наилучший способ совместного использования моделей, которые находятся domain/models/comestibles в приложении api/comestibles и в web приложении. Я также согласен с помещением всего общего кода в packages папку (смотрел на Lerna)

введите описание изображения здесь

Я могу легко указать код в каталог из api/comestibles , но это делает структуру dist папок нежелательной, а также портит вещи (например, Swagger). У меня также было изменение outDir в tsconfig.json от

"outDir": "./dist"

Для

"outDir": "./dist/api/comestibles/src"

Это нарушило другие вещи в приложении, хотя структура каталогов действительно изменилась.

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

Ответ №1:

Плагин Nx.dev решил мою проблему.

https://github.com/ZachJW34/nx-plus/tree/master/libs/vue