Angular 2:减小应用程序大小(除了 bundling/minification)
Angular 2: Reduce app size (in addition to bundling/minification)
我有一个中小型(~28 KB,仅包括(TypeScript 转译)JS + HTML 模板)Angular 2 个应用程序。
它最初是基于 angular.io quickstart,但现在我 bundling/minifying 它使用 JSPM 进行部署。
我得到的捆绑 JS 文件是 2.1 MB,在使用 gzip 压缩后下降到 449 KB。
这仍然相当大,我想问一下如何最好地减少部署应用程序的整体大小,以最小和最有效的捆绑包交付我的应用程序。
编辑:
我应该提一下,我通过单独导入 RxJS 运算符将未压缩但缩小的包大小减少到 1.9 MB,例如用 import 'rxjs/add/operator/map';
;所以除此之外,我还希望节省任何尺寸。
非常感谢您的帮助。
现在 Angular 2 已经是 2.0.0,有 documentation on Ahead of Time compilation of Angular apps(即从 TypeScript + HTML 模板到 Javascript)。
编译从 Angular 2 中删除了(模板)编译器,将 Angular 2 有效负载减少了一半。
正如 Gunter Zochbauer 所提到的,支持 rollup 的 tree-shaking,进一步降低了包的大小。
Angular CLI 中的生产捆绑现在支持 Tree shaking,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
这意味着一个基本的工作应用程序现在小于 100 KB,具有 AoT 编译、缩小、摇树优化和 gzip 压缩。
我使用 https://tools.pingdom.com 进行 page/css/scripts 大小检查,因为它们是在处理后从服务器收到的。
首先在服务器端使用 "gzip",在使用 gzip 之前 => 3mb,在 gzip 之后 560kb
其次,使用此命令进行构建,
"ng build -e=prod --prod --no-sourcemap --aot"
使用时 "ng build" 页面大小 => 560kb,使用后
"ng build -e=prod --prod --no-sourcemap --aot" 页面大小 => 227kb
我正在研究 MEAN 堆栈,这些对减小页面大小有很大帮助
希望对你有帮助
我有一个中小型(~28 KB,仅包括(TypeScript 转译)JS + HTML 模板)Angular 2 个应用程序。
它最初是基于 angular.io quickstart,但现在我 bundling/minifying 它使用 JSPM 进行部署。
我得到的捆绑 JS 文件是 2.1 MB,在使用 gzip 压缩后下降到 449 KB。
这仍然相当大,我想问一下如何最好地减少部署应用程序的整体大小,以最小和最有效的捆绑包交付我的应用程序。
编辑:
我应该提一下,我通过单独导入 RxJS 运算符将未压缩但缩小的包大小减少到 1.9 MB,例如用 import 'rxjs/add/operator/map';
;所以除此之外,我还希望节省任何尺寸。
非常感谢您的帮助。
现在 Angular 2 已经是 2.0.0,有 documentation on Ahead of Time compilation of Angular apps(即从 TypeScript + HTML 模板到 Javascript)。
编译从 Angular 2 中删除了(模板)编译器,将 Angular 2 有效负载减少了一半。
正如 Gunter Zochbauer 所提到的,支持 rollup 的 tree-shaking,进一步降低了包的大小。
Angular CLI 中的生产捆绑现在支持 Tree shaking,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
这意味着一个基本的工作应用程序现在小于 100 KB,具有 AoT 编译、缩小、摇树优化和 gzip 压缩。
我使用 https://tools.pingdom.com 进行 page/css/scripts 大小检查,因为它们是在处理后从服务器收到的。
首先在服务器端使用 "gzip",在使用 gzip 之前 => 3mb,在 gzip 之后 560kb
其次,使用此命令进行构建, "ng build -e=prod --prod --no-sourcemap --aot"
使用时 "ng build" 页面大小 => 560kb,使用后 "ng build -e=prod --prod --no-sourcemap --aot" 页面大小 => 227kb
我正在研究 MEAN 堆栈,这些对减小页面大小有很大帮助 希望对你有帮助