Angular 2:减少应用程序大小(除了捆绑/缩小)

时间:2016-05-31 10:31:42

标签: angular rxjs production-environment bundling-and-minification jspm

我有一个中小尺寸(约28 KB,包括(TypeScript编译)JS + HTML模板)Angular 2 app。

它最初基于angular.io quickstart,但现在我使用JSPM进行捆绑/缩小以进行部署。

我得到的捆绑JS文件是2.1 MB,当使用gzip压缩时,它下降到449 KB。

这仍然相当大,我想问一下如何最好地减少用于部署的应用程序的整体大小,以最小和最有效的捆绑方式提供我的应用程序。

修改: 我应该提一下,我通过单独导入RxJS运算符,将未压缩但缩小的捆绑包大小减少到1.9 MB,例如与import 'rxjs/add/operator/map';;所以,除此之外我还会寻找任何规模的节省。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:8)

现在Angular 2已经2.0.0了,有documentation on Ahead of Time compilation of Angular apps(即从TypeScript + HTML模板到Javascript)。

编译从Angular 2中删除(模板)编译器,将Angular 2有效负载减少一半。

如Gunter Zochbauer所述,支持rollup的树木摇晃,使捆绑尺寸进一步缩小。

现在,Angular CLI中的生产捆绑支持树摇动,AoT编译支持也在开发中。

使用ng-cli@1.0.0-beta.17新项目没有任何变化:

ng build --prod

3.9K styles.b52d2076048963e7cbfd.bundle.js
183K main.8b778eea5dd35968ef66.bundle.js.gz
805K main.8b778eea5dd35968ef66.bundle.js

ng build --prod --aot

3.9K styles.b52d2076048963e7cbfd.bundle.js
99K  main.a2eb733289ef46cb798c.bundle.js.gz
452K main.a2eb733289ef46cb798c.bundle.js

意味着一个基本的,有效的应用程序现在位于<带有AoT编译,缩小,摇晃和压缩的100 KB。

答案 1 :(得分:1)

我使用https://tools.pingdom.com进行页面/ css /脚本大小检查,因为它们是在进程后从服务器接收的。

首先使用" gzip"在使用gzip =>之前,在服务器端3mb,gzip 560kb之后

其次,使用此命令进行构建, " ng build -e = prod --prod --no-sourcemap --aot"

使用" ng build" page size => 560kb,使用后 " ng build -e = prod --prod --no-sourcemap --aot" page size => 227KB

我正在研究MEAN堆栈,这些帮助减少了页面大小 希望它有所帮助