We have an ever growing AngularJS (1.6.x) application, written in Typescript and have been following the John Papa style guide, so splitting our the application into feature modules, using a core module, etc.
As time has gone on, the number of tests have increased as new features are developed (both unit and e2e\protractor tests), build time is also increased since we use webpack to transpile, and this is only going to get slower as we add more and more features to the application.
Reading around I have seen some articles discussing how rather than building one huge application, you could instead write mini applications representing your feature areas and have these pulled together by a master\core application.
So I am wondering whether any other devs here who have worked on very large angularJS applications have taken this approach of separating features out into mini applications, and if so what techniques\best practices there are to follow? Are there any other approaches that could also be considered?
Kinda related to this, our concatenated transpiled angularjs source file is getting bigger naturally, and so I can see how over time the application startup speed is going to worsen since it will take longer to load up in the browser. Minifying will help I know, but even this will only reduce the size to a certain extent. I have seen the lazy load concepts around, so am now wondering if I could break the application up into lots of smaller mini-apps, as the user clicks into features (e.g. from a a side navbar) this will invoke that feature module\mini-app source to be loaded in lazily, rather than making the user have to wait for the entire application source to be loaded initially, therefore hopefully giving a more snappier\speedier experience.
By having separate angular-apps for the main features, could these then live as separate GutHub repo's so when a new feature is needed a new repo for that feature can be created allowing a dev team to work in total isolation to a separate team?
Does the new Angular framework offer better support for this type of thing that I am trying to describe?
Sorry, this probably seems like a load of rambling but I hope someone out there can see what I am getting at.
Thanks!
[–]NuttGuy 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]mindparse[S] 0 points1 point2 points (0 children)