【发布时间】:2018-01-17 17:59:02
【问题描述】:
我们正在构建一个大型模块化 Angular 应用程序,目前版本为 5.2.0。由于应用程序是模块化构建的,并且应用程序的每个部分都是由组织中的不同团队构建的,因此在打包生产时,所有内容都放在一起。目前,通过一个大型自动化构建将我们所有的应用程序构建到一个生产就绪的单页应用程序中存在许多风险。这最后一步需要像今天一样手动处理。
我们今天的架构看起来是这样的:
ROOT_APP
/ | \
APP1 APP2 APP3
ROOT_APP
启动 Angular 应用程序并实例化 AppComponent。此模块中存在所有全局 UI 元素,如顶部导航、系统栏、仪表板和用户配置文件设置。
AppX
由组织的其他部分在不同的存储库中开发。在构建这些应用程序时,我们只构建和发布此应用程序输出的块文件。这些块在生产中安装并交付给客户。所有这些应用程序都可以通过 Angular 路由器在应用程序的下一级访问,例如 ${HOST}/appx。
我们的设置问题:
- 需要在ROOT_APP中添加所有3pp节点库。
- 所有
AppX需要依赖相同版本的3pp节点库 - 无法进行 Treeshaking。
- AOT 不可能。
设置有效,但我认为可以做得更好,听听其他人的意见会很有趣,您对如何设置架构和开发大型可扩展 Angular 应用程序有什么经验?
【问题讨论】:
标签: angular architecture