Après 3 mois de débat et de recherche sur le choix entre React (avec Redux) et Angular 2, l'équipe front-end de mon entreprise a décidé de choisir Angular 2 (étant donné qu'elle convient mieux à notre problème).
Nous sommes dans le domaine des applications d'entreprise, qui comprend actuellement de nombreuses technologies frontales différentes (tout en ayant RESTful complet), et nous voulions tout remplacer et disposer d'une technologie unique pour faciliter la formation future et le contrôle de la qualité.
Étant donné la nature de notre produit, il est vaste et contient des modules, qui sont en soi un domaine différent et peuvent être créés en tant qu'application autonome, mais le produit lui-même vit dans une seule URL.
Exemple;
Appelons mon produit SuperApp.
En tant qu'interface utilisateur, SuperApp dispose d'un système de connexion standard et d'une navigation vers les modules / sous-produits enfants, de sorte que le flux de travail s'affiche comme suit.
SuperApp
- Authentifier l'utilisateur
- Assistant Oublier le mot de passe
- Page publique accessible sans authentification
Utilisateur authentifié
Système de navigation
- Accueil
- Sous-produit1
- Sous-produit2
- Sous-produit3
Profil
...
...
Groupes
...
...
- Accueil
Notez que dans la représentation ci-dessus, Sub-product1
et Sub-product2
sont deux domaines entièrement différents, ayant des domaines commerciaux entièrement différents.
Ce à quoi je peux penser en ce moment, c'est que je peux créer SuperApp en tant que projet Angular 2 unique ayant uniquement des composants et des vues qui sont pertinents pour lui-même, et SuperApp est également responsable du chargement de plusieurs applications enfants; Sub-product1
, Sub-product2
(Encore une fois, différents 2 angulaires des projets, ayant leur propre package.json
, webpack
configuration, etc.) via des composants-muets, et agir comme une coquille qui assure le routage de haut niveau et un espace réservé pour tenir les applications de l' enfant.
Une fois Sub-product1
chargé dans le shell, il ajoutera ses propres routes à la route actuelle sur laquelle SuperApp a atterri.
La raison pour laquelle je veux la séparation est parce que ces différentes applications (qui sont actuellement construites à l'aide d'ExtJS) ont des équipes dédiées qui y travaillent (nous sommes une entreprise de plus de 500 développeurs), donc s'ils ont leurs propres projets Angular, ils peuvent gérer leurs outils et les dépendances à leur goût sans dépendre de l'application grand-parent.
Mais je ne peux trouver nulle part dans les documents Angular officiels ou sur le Web que la possibilité d'avoir des applications Angular imbriquées est possible (de telle manière que le code cadre est partagé tandis que les dépendances des applications enfants sont complètement isolées et chargées uniquement lorsque l'application en a besoin), ou s'il existe une autre approche pour résoudre un tel problème.
Tout conseil ou même des liens vers des articles pertinents seront appréciés.