我们有一个具有许多外部库的角度项目,该库逐渐增长到10 MB,因此加载整个应用程序需要一些时间。
我们现在正在考虑将应用程序分为多个懒惰的负载模块。但是,所有教程都在谈论将您的应用程序代码拆分为多个JS块,而是要根据使用它们使用的模块,将vendor.bundle.js
中包含的库拆分为多个块。仅分配我们的应用程序代码不会为我们节省太多麻烦,因为外部库构成了应用程序规模的大部分。
我们应用程序依赖的大多数库仅在单个模块中使用,因此将它们在vendor.bundle.js
中没有意义。我们如何拆分这个捆绑包,以便较小的供应商块将遵循懒惰的负载模块的结构?是否可以通过角CLI轻松执行此操作,或者不是那么常见,我们需要一些肮脏的骇客?
我们发现,如果仅在一个懒惰的模块中需要的话,库将在块之间自动划分。
有很多方法可以动态添加JavaScript库。我在stackoverflow上找到了一个有用的解决方案。
https://stackoverflow.com/a/42766146/7458082
您可以加载懒惰模块主要组件的库。有保证,您可以在加载库后挂钩以初始化组件。