如何减少生产代码Angular 2.0的文件大小

Dem*_*ona 10 angular-cli angular

我正在使用Angular-Cli及其默认项目.

我正在尝试获得代码的生产版本,因此我正在运行--prod并且在输出中我看到911 KB,是否可以进一步优化它?我如何告诉angular提供gzip文件?

ng serve --prod

在此输入图像描述

仅供参考:我尝试过服务--prod - 但是服务器正在循环中再次构建.但是,当我尝试构建--prod --aot然后我看到大小减少但我无法启动服务器.

ng build --prod --aot

在此输入图像描述

下面是我在Package.json文件中使用的代码

{
  "name": "angular2-quickstart",
  "version": "0.0.0",
  "license": "MIT",
  "angular-cli": {},
  "scripts": {
    "start": "ng serve",
    "lint": "tslint \"src/**/*.ts\"",
    "test": "ng test",
    "pree2e": "webdriver-manager update",
    "e2e": "protractor"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "2.0.0",
    "@angular/compiler": "2.0.0",
    "@angular/core": "2.0.0",
    "@angular/forms": "2.0.0",
    "@angular/http": "2.0.0",
    "@angular/platform-browser": "2.0.0",
    "@angular/platform-browser-dynamic": "2.0.0",
    "@angular/router": "3.0.0",
    "core-js": "^2.4.1",
    "rxjs": "5.0.0-beta.12",
    "ts-helpers": "^1.1.1",
    "zone.js": "^0.6.23"
  },
  "devDependencies": {
    "@types/jasmine": "^2.2.30",
    "angular-cli": "1.0.0-beta.16",
    "codelyzer": "~0.0.26",
    "jasmine-core": "2.4.1",
    "jasmine-spec-reporter": "2.5.0",
    "karma": "1.2.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine": "^1.0.2",
    "karma-remap-istanbul": "^0.2.1",
    "protractor": "4.0.9",
    "ts-node": "1.2.1",
    "tslint": "3.13.0",
    "typescript": "2.0.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

Mel*_*igy 5

首先,由于所有Web服务器现在都是gzip输出,因此实际大小不是.js文件大小,而是.gz文件大小.根据我的理解,这是创建此文件的唯一原因,以向您显示逼真的gzip压缩大小.

但是,有更大尺寸的空间,40%以上的改进.例如,如果您安装并使用Angular CLI beta 16(编写本文时的当前版本),则它具有开箱即用的AoT编译器.

像这样运行:

ng build -prod --aot

从beta-16开始,目前观察/服务和AoT存在一些问题,就像这样,所以你现在可能只将它用于实际生产而不是开发服务器.

更新:

在beta.26之后开始下一个版本,--aot默认情况下将在您使用时启用-prod.

它目前合并为主人.