After long 3 months of debate and research in choosing between React (with Redux) and Angular 2, front-end team in my company has concluded to go with Angular 2 (given that it is more suited for our problem).
We're into enterprise app business, which is currently comprises of many different front-end technologies (while having entire backend RESTful), and we wanted to replace it all and have a single technology to make future training and quality control easier.
Given the nature of our product, it is vast, and there are modules within, which are in itself a different domain and can be made as a standalone app but the product itself lives in a single URL.
Let's call my product as SuperApp.
As a UI, SuperApp has standard login system, and navigation to child modules/sub-products, such that the workflow appears as follows.
- Authenticate User
- Forget password wizard
- Public page accessible without auth
Note that in above representation,
Sub-product2 are two entirely different areas, having entirely different business domains.
What I can think of right now is that I can create SuperApp as a single Angular 2 project having only components and views which are relevant to itself, and SuperApp is also responsible for loading up of multiple child apps;
Sub-product2 (again, different Angular 2 projects, having their own
webpack config, etc.) via dumb-components, and act as a shell which provides top-level routing and a placeholder to hold those child apps.
Sub-product1 is loaded within the shell, it'll append its own routes to the current route that SuperApp has landed at.
The reason I want seperation is because these different apps (which are currently built using ExtJS) have dedicated teams working on it (we're a company having 500+ developers), so if they have their own Angular projects, they can manage their tooling and dependencies to their liking without relying on grand parent app.
But I'm unable to find anywhere in official Angular docs, or on the web that whether having nested Angular apps is possible at all (in such a way that framework code is shared while dependencies of child apps are completely isolated and loaded only when app needs it), or whether there is any alternate approach to solve such a problem.
Any guidance or even links to any relevant articles will be appreciated.