Після тривалих 3-х місяців дискусій та досліджень щодо вибору між React (з Redux) та Angular 2, команда передньої групи моєї компанії зробила висновок, що йде з Angular 2 (враховуючи, що це більше підходить для нашої проблеми).
Ми займаємось корпоративним бізнесом прикладних програм, який наразі складається з безлічі різних передових технологій (у той час як цілий бекенд-RESTful), і ми хотіли замінити все це та мати єдину технологію, щоб полегшити майбутнє навчання та контроль якості.
Зважаючи на характер нашого продукту, він є величезним, і всередині нього є модулі, які самі по собі є різною областю, і їх можна зробити як окремий додаток, але сам продукт живе за однією URL-адресою.
Приклад;
Давайте назвемо мій продукт як SuperApp.
Як інтерфейс користувача, SuperApp має стандартну систему входу та навігацію до дочірніх модулів / субпродуктів, таким чином, що робочий процес відображається наступним чином.
SuperApp
- Аутентифікувати користувача
- Забудьте майстра паролів
- Загальнодоступна сторінка доступна без автентичності
Автентифікований користувач
Навігаційна система
- Головна
- Підпродукт1
- Підпродукт2
- Субпродукт3
Профіль
...
...
Групи
...
...
- Головна
Зверніть увагу , що в поданні вище, Sub-product1
і Sub-product2
дві абсолютно різні області, які мають абсолютно різні бізнес - домени.
Я зараз можу подумати - це те, що я можу створити SuperApp як єдиний проект Angular 2, що містить лише ті компоненти, які є релевантними для себе, і SuperApp також відповідає за завантаження декількох дочірніх додатків; Sub-product1
, Sub-product2
(знову ж таки, різні проекти Angular 2, які мають свої власні package.json
, webpack
конфігураційні тощо) за допомогою німих компонентів, і виконують роль оболонки, яка забезпечує маршрутизацію до верхнього рівня та заповнювач для зберігання цих дочірніх додатків.
Після Sub-product1
завантаження в оболонку він додасть власні маршрути до поточного маршруту, на який приземлився SuperApp.
Причина, за якою я хочу відокремитись, полягає в тому, що ці різні додатки (які зараз будуються за допомогою ExtJS) мають спеціальні команди, які працюють над цим (ми - компанія, яка має понад 500 розробників), тому, якщо у них є власні кутові проекти, вони можуть керувати своїми інструментами та залежності від їхніх уподобань, не покладаючись на додаток для батьків.
Але я не можу ніде знайти в офіційних документах Angular або в Інтернеті, чи можливо взагалі вкладені вкладені програми Angular (таким чином, що загальний код використовується спільним, тоді як залежності дочірніх додатків повністю ізольовані та завантажуються лише тоді, коли додаток потребує цього), чи є альтернативний підхід для вирішення такої проблеми.
Будь-які вказівки або навіть посилання на будь-які відповідні статті будуть вдячні.