【问题标题】:The achitecture of a large scalable Angular app大型可扩展 Angular 应用程序的架构
【发布时间】:2018-01-17 17:59:02
【问题描述】:

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

我们今天的架构看起来是这样的:

   ROOT_APP
  /   |   \
APP1 APP2 APP3

ROOT_APP

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

AppX

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

我们的设置问题:

  1. 需要在ROOT_APP中添加所有3pp节点库。
  2. 所有AppX需要依赖相同版本的3pp节点库
  3. 无法进行 Treeshaking。
  4. AOT 不可能。

设置有效,但我认为可以做得更好,听听其他人的意见会很有趣,您对如何设置架构和开发大型可扩展 Angular 应用程序有什么经验?

【问题讨论】:

    标签: angular architecture


    【解决方案1】:

    好吧,我不知道你为什么选择这种方法,因为从我看到的情况来看,它一点都不方便......

    就我个人而言,在我所做的项目中,我们有几个团队在同一个项目上工作,并具有版本控制。我们创建了 Angular 模块,每个团队都在他们的模块上工作,然后我们在完成后创建 拉取请求,需要其他团队验证的 PR。

    这意味着我们只有一个项目,可以一次性摆脱所有限制。

    【讨论】:

    • 了解,在这个项目中有 1200 多名开发人员(包括后端)在工作,所以这种方法对我们不起作用。
    • 当然会,这就是 Git 的用途!您只需将您的应用程序分成不相互依赖的模块,这将是您已经拥有的确切工作方式,但简化了构建和依赖管理。我看到这与 200 多名开发人员一起工作,所以我很确定这可以为一千多人工作:)
    猜你喜欢
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多