#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 решил мою проблему.