我有一个中小尺寸(约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';
;所以,除此之外我还会寻找任何规模的节省。
非常感谢您的帮助。
答案 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堆栈,这些帮助减少了页面大小 希望它有所帮助