大型可扩展Angular应用程序的架构

时间:2018-01-17 09:35:37

标签: angular architecture

我们正在构建一个目前版本为5.2.0的大型模块化Angular应用程序。由于应用程序是模块化构建的,并且每个应用程序都由组织中的不同团队构建,因此在生产包装时所有内容都会组合在一起。目前存在许多风险,即通过一个大型自动构建将所有应用程序构建到一个生产就绪的单页面应用程序中。最后一步需要手动处理。

我们今天拥有的架构看起来像这样:

   ROOT_APP
  /   |   \
APP1 APP2 APP3

ROOT_APP

启动角度应用程序并实例化AppComponent。此模块中存在所有全局UI元素,如顶部导航,系统工具栏,仪表板和用户配置文件设置。

AppX中

由组织的其他部门在不同的存储库中开发。在构建这些应用程序时,我们只构建并发布此应用程序输出的块文件。这些块在生产中安装并交付给客户端。所有这些应用程序都通过Angular路由器在${HOST}/appx等应用程序中向下一级访问。

我们的设置问题:

  1. 需要在ROOT_APP中添加所有3pp节点库。
  2. 所有AppX需要依赖相同版本的3pp节点库
  3. 不可能使用Treeshaking。
  4. AOT不可能。
  5. 设置有效,但我认为可以做得更好,听取其他人的意见,了解如何设置架构和开发大型可扩展Angular应用程序的体验会很有趣?

1 个答案:

答案 0 :(得分:1)

好吧,我不知道你为什么选择这种方法,因为从我看来它根本不方便......

Personnaly,在我做的项目中,我们有几个团队在同一个项目上工作版本控制。我们创建了 Angular模块,每个团队都在处理他们的模块,然后我们在完成后创建了拉取请求,PR需要得到其他团队的验证。

这意味着我们只有一个项目,一次摆脱所有约束。