创建一个Android项目非常简单。只需通过npm install -g @angular/cli
安装Angular Cli,然后通过ng new project_name
创建一个项目。
对于一个且只有一个项目,一切都非常棒。 然而,当涉及到现实世界的企业要求时,它就不再那么有趣了。
我们是一家拥有100多个Web应用程序的公司(如果我们能够正确有效地处理基础架构,那么我们的愿景将超过500个)。这意味着如果我们想要迁移到Angular,我们需要执行ng new x
100次。那不再酷了。因为每个Angular项目都使用近30个默认文件创建,而且某些文件对于管理依赖项非常复杂。
在企业层面创造商业价值的一种非常有效的方法是建立企业标准。如果我们希望我们的所有项目都使用相同版本的所有工具,那么结对编程会成为一块蛋糕怎么办?如果我们决定不想编写测试,并且我们不希望在每个项目中都进行所有那些测试,那该怎么办? (毕竟,维护代码最便宜的方法就是不要编写代码)。
如果我们想在文件系统架构中实现IoC的精神,也就是说,不是每个开发人员决定他想要什么,那么更大的高级开发人员团队会决定所有项目想要什么?
我们如何减少Angular项目中的初始文件数量?我们怎样才能继承这些文件呢?例如,project.json
继承自corporateProject.json
或tsconfig.json
继承自中央公司决定的TypeScript配置?
我的意思是,我们不能只有100个或更多完全孤立的项目开始相互偏离。在现实世界的业务背景下,这太贵了。我们需要进行一些集中化,以尽可能降低成本,以便我们能够以更低的成本向客户提供产品并保持竞争力。
例如,我们不希望每个开发人员决定使用哪个图表库,我们希望他们已经在他们的项目中通过更大的上下文引用图表库,以便他们都将使用它。请不要告诉我要求开发人员这样做。不,那不是。它应该是自动的和基于机器的。
根据我们在GitHub feature request中所写的内容,我们了解Nx。但它基于monorepo,在我们的情况下,这在某种程度上是不可能的,并且真的不是一个漂亮的清洁可扩展解决方案。
我们似乎无法在互联网上找到好的解决方案,因为大多数都是关于创建一个简单的虚拟项目。
如何最大限度地重用许多Angular项目,包括样板配置文件和整个文件系统架构?