ng-docs.github.io icon indicating copy to clipboard operation
ng-docs.github.io copied to clipboard

ng cli 8 打包后,main-es2015 和 main-es5两个js文件过大,怎么处理?

Open blackbearn opened this issue 4 years ago • 5 comments

ng cli 8 打包后,main-es2015 和 main-es5两个js文件过大,怎么处理?

我做过懒加载,把每个组件都添加模块,并通过路由懒加载,然后做了摇树优化,添加了编译参数

ng build --prod --aot --build-optimizer

但是打包后的文件仍然有 12.8M,优化之前打包是16M

请问有没有什么别的办法,能大幅度优化这两个文件?

blackbearn avatar Jan 09 '20 08:01 blackbearn

用 webpack-bundle-analyzer 分析一下它的大小构成,然后有针对性的去优化。这种多半是某个超大型第三方库导致的,可以把它改成惰性加载的。

asnowwolf avatar Jan 09 '20 11:01 asnowwolf

楼上说的没毛病,另外就是可以忍一下,等ng9出来后支持的组件级懒加载,可以解决很多切包难题(ng到9才想起来解决这个问题也是不容易..........)

wszgrcy avatar Jan 10 '20 08:01 wszgrcy

现在的版本其实也可以支持组件级懒加载的,import('组件文件名'),然后把它绑定给 *ngComponentOutlet 就行了。

asnowwolf avatar Jan 10 '20 11:01 asnowwolf

用 webpack-bundle-analyzer 分析一下它的大小构成,然后有针对性的去优化。这种多半是某个超大型第三方库导致的,可以把它改成惰性加载的。

第三方库如何惰性加载啊?特别是那种js的库。

charlee2025 avatar Oct 28 '20 06:10 charlee2025

减少你app.module.ts中的引用,利用路由懒加载分割惰性模块

EnochGao avatar Jun 24 '21 03:06 EnochGao