Después de 3 meses de debate e investigación para elegir entre React (con Redux) y Angular 2, el equipo de front-end de mi empresa ha decidido utilizar Angular 2 (dado que es más adecuado para nuestro problema). / p>
Estamos en el negocio de las aplicaciones empresariales, que actualmente comprende muchas tecnologías front-end diferentes (aunque tenemos RESTful de back-end completo), y queríamos reemplazarlo todo y tener una tecnología única para facilitar la capacitación futura y el control de calidad. .
Dada la naturaleza de nuestro producto, es enorme y hay módulos dentro, que son en sí mismos un dominio diferente y se pueden crear como una aplicación independiente, pero el producto en sí mismo se encuentra en una única URL.
Example;
Llamemos a mi producto como SuperApp.
Como interfaz de usuario, SuperApp tiene un sistema de inicio de sesión estándar y navegación a módulos / subproductos secundarios, de manera que el flujo de trabajo aparece de la siguiente manera.
-
SuperApp
- autenticar usuario
- Asistente para olvidar contraseña
- Se puede acceder a la página pública sin autenticación
-
Usuario autenticado
-
Sistema de navegación
- Inicio
- Subproducto1
- Subproducto2
- Subproducto3
-
Perfil
...
...
-
Grupos
...
...
- Inicio
-
Tenga en cuenta que en la representación anterior, Sub-product1
y Sub-product2
son dos áreas completamente diferentes, con dominios empresariales completamente diferentes.
En lo que puedo pensar ahora mismo es que puedo crear SuperApp como un solo proyecto de Angular 2 con solo componentes y vistas que son relevantes para sí mismo, y SuperApp también es responsable de cargar varios aplicaciones infantiles; Sub-product1
, Sub-product2
(de nuevo, diferentes proyectos de Angular 2, que tienen sus propios package.json
, webpack
config, etc.) a través de componentes simples y actúan como un shell que proporciona enrutamiento de nivel superior y un marcador de posición para mantén esas aplicaciones infantiles.
Una vez, Sub-product1
se carga dentro del shell, agregará sus propias rutas a la ruta actual en la que ha aterrizado SuperApp.
La razón por la que quiero una separación es porque estas aplicaciones diferentes (que actualmente están compiladas con ExtJS) tienen equipos dedicados que trabajan en ello (somos una empresa con más de 500 desarrolladores), por lo que si tienen sus propios proyectos en Angular, pueden administre sus herramientas y dependencias a su gusto sin depender de la aplicación Grand Parent.
Pero no puedo encontrar en ninguna parte en documentos oficiales de Angular, o en la web, que si es posible tener aplicaciones Angular anidadas es posible (de tal manera que el código del marco sea compartido, mientras que las dependencias de las aplicaciones secundarias están completamente aisladas y cargadas solo cuando la aplicación lo necesita), o si existe algún enfoque alternativo para resolver tal problema.
Cualquier orientación o incluso enlaces a cualquier artículo relevante serán apreciados.