我正在使用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"
}
}

答案 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。