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

时间:2016-10-06 21:01:47

标签: angular angular-cli

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

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

  

ng serve --prod

enter image description here

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

  

ng build --prod --aot

enter image description here

以下是我在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"
  }
}




1 个答案:

答案 0 :(得分:5)

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

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

像那样运行:

ng build -prod --aot

从beta-16开始,目前有一些关于watch / serve和AoT的问题,例如this,所以你现在可能只将它用于实际的生产而不是dev服务器。

更新

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

目前正在merged into master