【问题标题】:Angular 2 App Deploy Size ReductionAngular 2 应用程序部署大小减少
【发布时间】:2017-03-19 21:51:04
【问题描述】:

下面是我使用 Angular 2 和 Angular CLI 构建的网络应用程序的网络网络选项卡的快照。我已经事先清理了缓存。如您所见,我最大的文件是 5.4mb,即 vendor.bundle.js 文件。这是正常的还是这个文件很大?!。

我正在使用利用 AOT 和 TreeShaking 的最新 Angular CLI。我还实现了延迟加载,以便只加载相关组件。

我按照 firebase 的指南,在终端中使用 firebase deploy 命令将由 ng build --prod 生成的 dist 文件夹部署到他们的托管服务中。

如何进一步减小大小或调查我的应用程序的哪个“部分”正在加载导致这个大小?

我还发现,当我使用手机加载时,它使用 2.2mb 而不是我桌面上显示的最大大小 7.5mb。这正常吗?

这是我运行 ng--version 得到的结果

    node: 6.9.1
os: darwin x64
@angular/common: 2.4.9
@angular/compiler: 2.4.9
@angular/core: 2.4.9
@angular/forms: 2.4.9
@angular/http: 2.4.9
@angular/material: 2.0.0-beta.2
@angular/platform-browser: 2.4.9
@angular/platform-browser-dynamic: 2.4.9
@angular/router: 3.4.9
@angular/cli: 1.0.0-rc.1
@angular/compiler-cli: 2.4.9

我的 Dist 文件夹如下图所示。有趣的是,网络选项卡中没有显示 vendor.bundle.js。是因为firebase需要vendor.2ff9250938e6ffbe8462.bundle并“解压缩”吗?它到 vendor.bundle.js(从 1.4mb 到 5.4mb。还是我在这里说童话?)

【问题讨论】:

    标签: angular angular-cli


    【解决方案1】:

    我认为你没有使用 --prod,如果你使用了,它会在你的捆绑文件之后显示一个随机散列(除非我遗漏了什么,有没有办法禁用它?)。

    这是应用 gzip 后它在 chrome 中的外观:

    Angular 4 即将推出,并将应用程序的总大小减少约 25%。


    我也可能是错的,但看起来你的图片太重了,你应该试着压缩一下。 5% 的压缩有时可以节省更多 50% 的图像大小。

    【讨论】:

    • 现在您指出了一些有趣的事情。我已经包含了我的 dist 文件夹的屏幕截图,并且确实有 vendor.2ff9250938e6ffbe8462.bundle.js 文件。但是,网络选项卡说我加载了一个 5.4mb 的 vendor.bundle.js 文件,它根本不存在于我的 dist 文件夹中?!
    • 您可能没有将您的应用程序的正确版本推送到 firebase,您的包应该在 chrome 中显示一个哈希字符串。在您的应用中的某处添加一些内容,例如应用版本号,以确保上传最新版本的应用。
    • 嗯.. 我不知道为什么会这样。我已经使用相同的方法部署到 firebase 80 多次,当我打开网站时,我所有的小改动都会反映出来。这意味着我的正确文件正在上传。所以在这个阶段我不确定 vender.bundle.js (5.4mb) 来自哪里
    • 在上传之前,您是否清除了 Firebase 项目的“公共”文件夹?您也可以尝试npm update -g 来更新firebase 工具。并尝试重新创建一个新的 firebase 项目。
    • 很高兴你明白了:)
    猜你喜欢
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2013-01-13
    • 2016-09-29
    • 2017-11-16
    相关资源
    最近更新 更多