Объединение логике нескольких проектов

У меня есть 3 проекта angular написанных на разных версиях 12,14,17. Пока их 3 но потом может быть и больше. В них очень много всего одинакового (сервис авторизации, конфигурации, печати, логика ui таблиц, полей, модалок и т.д)

Проблема такая. Если в одном проекте делаются изменения в каком-либо месте глобально (например в общее отображение справочников добавляю логику, которая будет говорить что данное поле нельзя сортировать) или находится баг - то приходится менять во всех проектах, что есть не удобно.

Что пробовал. Пробовал вынести общую логику в проект с монорепозиторием nx в качестве библиотек. Но столкнулся с проблемой. Если модели и функции вынеслись корректно (т. к. у них в зависимостях только ts и они корректно собираются и используются в нескольких версиях angular - то модули и сервисы должны собираться как внгуляр библиотеки (у nx есть установка и поддержка) и в итоге я снова привязываюсь к версии, т к nx должен как-то собрать.

Хотелось бы получить на выходе что-вроде такого: npm/organization пакеты

@my-org/core (без публикации для общей логики для всех версий)
@my-org/core@12 (т.к. сервисы и модули желательно собрать под версию)
@my-org/core@14
@my-org/core@17
@my-org/functions
@my-org/models
@my-org/ui (без публикации для общей логики для всех версий)
@my-org/ui@12
@my-org/ui@14
@my-org/ui@17

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


Ответы (0 шт):