Creating ONE Android project is very simple. Just install Angular Cli via npm install -g @angular/cli and after that create a project via ng new project_name .
For ONE and only ONE project, everything is super amazing. But when it comes to real corporate requirements, it's not so much fun.
We are a company with more than 100 web applications (and a vision of more than 500 if we can properly and efficiently handle the infrastructure). This means that if we want to switch to Angular, we need to do this ng new x 100 times. This is no longer cool. Since every Angular project is created with nearly 30 files by default, and some files are very difficult to manage dependencies.
One very effective way to create business value at the corporate level is to have a corporate standard. What if we want all our projects to use the same version of all the tools so that pair programming becomes part of the cake? What if we decided that we do not want to write tests, and we do not want all these tests to be indexed in each project? (after all, the cheapest way to maintain code is to not write this code at all).
What if we want to implement the spirit of IoC in the file system architecture, that is, instead of having each developer decide what he wants, a large team of senior developers will decide what ALL projects want?
How can we reduce the number of source files in Angular projects? How can we inherit some of these files? Like, for example, project.json , inheriting from corporateProject.json or tsconfig.json , inheriting from the central corporate TypeScript configuration?
I mean, we cannot have only 100 or more completely isolated projects that begin to deviate from each other. It is toooooo expensive in the context of a real business. In the end, we need to do some centralization so as to reduce costs as little as possible, so that we can supply products at lower costs to our customers and remain competitive.
For example, we donβt want each developer to decide which graphics library to use, we want them to already have a diagram library that is referenced in their projects in a wider context, so that they will all use it. And please do not tell me that this can be solved by asking the developers to do it. No, it is not. It must be automatic and machine.
Based on what we wrote in this query of the GitHub functions , we know about Nx . But this is based on monorepo, which is somehow impossible in our case, and really not a beautiful purely scalable solution.
We seem to be unable to find good solutions on the Internet, because most of them are the creation of ONE simple fictitious project.
How to maximize reuse in many Angular projects, including template configuration files and general file system architecture?