将vendor.js拆分为多个块

时间:2018-04-28 11:18:40

标签: angular webpack webpack-2 angular2-aot vendor

我正在使用角度cli处理Angular 5项目。我在网站的开发中使用了一些npm模块。当我创建生产版本时,它会生成大小在MB中的vendor.js,因为当用户第一次打开它时,网站加载速度非常慢。

我尝试在构建ng build --prod --aot --buildOptimizer时添加一些额外的参数,但与其他文件相比,它的大小仍然相当大。

在webpack中是否有任何方法我可以将vendor.js拆分为多个文件或减少文件或延迟加载vendor.js文件?

1 个答案:

答案 0 :(得分:1)

是。在webpack 4中,您可以使用splitChunks配置和SplitChunksPlugin执行此操作,而在较低版本中,您可以使用AggressiveSplittingPlugin。虽然这些变化本身并没有太大帮助,但总大小保持不变。

最好lazy-load一些图书馆。为此,您可以动态导入库(或使用它们的模块/文件)而不是import语句,但由于这是异步操作,因此需要重写代码逻辑。当您使用角度时,使用framework-specific延迟加载

可能更容易

另一个注意事项:如果库是从多个模块中使用的,而另一个是使用import语句动态加载它,那么它最终会以vendor包结尾,所以你要确保所有这些库的导入都是动态的。