После долгих 3 месяцев дискуссий и исследований по выбору между React (с Redux) и Angular 2, передовая команда в моей компании решила перейти на Angular 2 (учитывая, что он больше подходит для нашей проблемы).
Мы занимаемся бизнесом корпоративных приложений, который в настоящее время включает в себя множество различных интерфейсных технологий (хотя и имеет целый бэкэнд RESTful), и мы хотели заменить все это и создать единую технологию, которая облегчит дальнейшее обучение и контроль качества.
Учитывая природу нашего продукта, он огромен, и в нем есть модули, которые сами по себе являются другим доменом и могут быть созданы как отдельное приложение, но сам продукт живет по одному URL.
Пример;
Давайте назовем мой продукт SuperApp.
В качестве пользовательского интерфейса SuperApp имеет стандартную систему входа в систему и переход к дочерним модулям / субпродуктам, так что рабочий процесс выглядит следующим образом.
SuperApp
- Аутентифицировать пользователя
- Мастер забытых паролей
- Публичная страница доступна без авторизации
Аутентифицированный пользователь
Навигационная система
- Дом
- Sub-product1
- Sub-product2
- Sub-product3
Профиль
...
...
группы
...
...
- Дом
Обратите внимание, что в приведенном выше представлении, Sub-product1
и Sub-product2
две совершенно разные области, имеющие совершенно разные бизнес-доменов.
Сейчас я могу думать о том, что я могу создать SuperApp как единый проект Angular 2, имеющий только компоненты и представления, которые имеют отношение к нему, а SuperApp также отвечает за загрузку нескольких дочерних приложений; Sub-product1
, Sub-product2
(Опять же , разный угловые 2 проекта, имеющий свою собственную package.json
, webpack
конфигурацию и т.д.) с помощью тупых-компонентов, а также выступать в качестве оболочки , которая обеспечивает маршрутизацию верхнего уровня и заполнителем для хранения этих дочерних приложений.
После Sub-product1
загрузки в оболочку он добавит свои маршруты к текущему маршруту, к которому прибыл SuperApp.
Причина, по которой я хочу отделиться, заключается в том, что в этих разных приложениях (которые в настоящее время создаются с использованием ExtJS) работают специальные команды (у нас более 500 разработчиков), поэтому, если у них есть свои собственные проекты Angular, они могут управлять своими инструментами. и зависимости по своему вкусу, не полагаясь на приложение прародителя.
Но я нигде не могу найти ни в официальных документах Angular, ни в Интернете, возможно ли вообще использовать вложенные приложения Angular (таким образом, что код инфраструктуры используется совместно, а зависимости дочерних приложений полностью изолированы и загружаются только тогда, когда приложение нужно), или есть ли альтернативный подход для решения такой проблемы.
Любые указания или даже ссылки на любые соответствующие статьи будут оценены.