代码之家  ›  专栏  ›  技术社区  ›  livthomas

如何在Angular应用程序中延迟加载库

  •  1
  • livthomas  · 技术社区  · 6 年前

    我们有一个有许多外部库的角度项目,它的大小逐渐增长到10 MB,因此加载整个应用程序需要一些时间。

    我们现在正在考虑将应用程序拆分为多个延迟加载模块。然而,所有教程都谈到将应用程序代码拆分为多个JS块,而不是拆分中包含的库 vendor.bundle.js 根据使用的模块分为多个块。仅仅拆分应用程序代码不会为我们节省太多麻烦,因为外部库构成了应用程序的大部分大小。

    我们的应用程序所依赖的大多数库只在单个模块中使用,因此将它们放在其中没有任何意义 小贩捆js公司 。我们如何拆分此捆绑包,以便较小的供应商区块将遵循延迟加载模块的结构?通过Angular CLI可以轻松做到这一点吗?还是不是很常见,我们需要一些肮脏的黑客?

    2 回复  |  直到 6 年前
        1
  •  3
  •   livthomas    6 年前

    我们发现,如果只在一个延迟加载的模块中需要库,那么库会自动在块之间分割。

        2
  •  1
  •   Basavaraj Bhusani    6 年前

    有许多方法可以动态添加JavaScript库。我在stackoverflow上找到了一个有用的解决方案。

    https://stackoverflow.com/a/42766146/7458082

    您可以在惰性模块的主要组件的单元上加载库。有一个承诺,您可以在加载库后钩住以初始化组件。