即使包括--aot --build-optimizer --sourcemaps = false

时间:2018-04-27 08:40:05

标签: angular

我的应用程序中有近17个模块,与角度生成的模块相比,其大小可以忽略不计。

chunk {common} common.chunk.js (common) 2.18 MB 
chunk {main} main.bundle.js (main) 4.42 MB [initial] [rendered]
chunk {polyfills} polyfills.bundle.js (polyfills) 616 KB [initial]

我理解Angular会为处理一些内部事物生成这些块,但为什么主要包是4.5 MB

我做错了什么?

有没有办法减少这些尺寸?

enter image description here

2 个答案:

答案 0 :(得分:4)

没有特定的方法来减小尺寸。一个想法是LazyLoading您的模块以减少初始块。

另一个是使用webpack bundle analyser.

分析块

enter image description here

在捆绑分析器中,您可以更深入地了解要优化的内容和方式。为生产构建生成JSON(--aot --prod)并使用bundle analyzer进行分析。

另外,如果您还没有将所有软件包更新到最新版本,那么树震动可能无法正常工作,因此如果您导入的内容如下:

import {Observable} from `rxjs/Rx`

最终可能会捆绑整个库,您可能需要执行特定的导入,例如

import {Observable} from `rxjs/Observable`

如果你在分析仪中检查你的束,那么树木是否存在摇晃可能是显而易见的。

即使树摇动,某些依赖性如 momenjs 也可能很麻烦,因为它不是模块化的,在这些情况下,更改为模块化替代方案可能会有所帮助。

还有source-map-explorer已经mentioned in Angular docs

enter image description here

答案 1 :(得分:0)

我已将我的项目升级到Angular v6 ....我只是不相信我们的萌芽大小从4MB下降到1 MB .... Angular团队的Greak工作:)