【问题标题】:How to reduce the file size of production code Angular 2.0如何减少生产代码Angular 2.0的文件大小
【发布时间】:2017-02-15 18:19:39
【问题描述】:

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

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

ng 服务 --prod

仅供参考:我尝试了 ng serve --prod --aot 但服务器正在循环中再次构建。但是,当我尝试 ng build --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"
  }
}

【问题讨论】:

    标签: angular angular-cli


    【解决方案1】:

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

    但是,还有更好的尺寸,40%+ 的改进空间。例如,如果您安装和使用 Angular CLI beta 16(撰写本文时的当前版本),它具有开箱即用的 AoT 编译器。

    这样运行:

    ng build -prod --aot

    从 beta-16 开始,目前 watch / serve 和 AoT 存在一些问题,例如 this,因此您现在可能只将它用于实际生产生成而不是开发服务器。

    更新:

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

    目前是merged into master

    【讨论】:

    • 嗨,Meligy,感谢您的回答,我已经尝试过构建和服务,并且在我的问题中也提到过。有没有一个地方可以让我们关注 Angular 团队的更新?此外,是否可以在 ng build --prod --aot 之后从 Angular cli 服务页面?(但不使用 ng serve --prod --aot)
    • 我还用 ng build --prod --aot 的结果更新了问题
    • 我认为目前没有比 123 kB gzip 大小更好的了。还有其他一些技巧可以生成更小的包并在互联网上显示,例如,将 uglify 换成 google 闭包编译器,但 CLI 还没有利用这些。我知道核心 Webpack 成员也是核心 CLI 成员,可能正计划对此进行调查,但不会很快。
    • 关于如何保持更新,我个人打开github.com/angular/angular-cli/commits/master 并订阅github.com/angular/angular-cli/issues 中的许多问题,并在推特上关注Webpack 人twitter.com/TheLarkInn
    猜你喜欢
    • 1970-01-01
    • 2021-08-29
    • 2017-10-07
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多