Angular 2 中的 bundle.js.gz 文件是啥?

Posted

技术标签:

【中文标题】Angular 2 中的 bundle.js.gz 文件是啥?【英文标题】:What is bundle.js.gz file in angular 2?Angular 2 中的 bundle.js.gz 文件是什么? 【发布时间】:2017-02-09 17:41:55 【问题描述】:

我正在为我的应用程序使用 ng-cli。当我运行 ng build --prod 时,我得到了两个文件 main.budle.js 和 main.bundle.js.gz。第二个是什么?它有什么好处?

【问题讨论】:

【参考方案1】:

服务器和客户端之间的 HTTP 传输几乎总是使用压缩。在大多数情况下,这是 gzip。

因此,对于传输时间而言,重要的不是 bundle.js 的大小,而是 bundle.js.gz 的大小,因为内容实际上总是以 gzip 压缩格式发送。

当请求bundle.js 时,服务器会即时对其进行gzip 压缩并将其放在网络上。所以 gzip 对每个请求都运行,这对于静态内容来说效率很低。

gzip 的性能也会随着压缩级别的增加而显着下降 (check out this article)。如果可能在运行中使用尽可能高的压缩级别是无效的。 当请求 bundle.js 的 gzip 压缩版本时,正确配置的网络服务器会发送 bundle.js.gz,因此您可以使用 gzip 可以提供的最高压缩级别。

在我看来,除非您的服务器主要提供可以提前压缩的静态内容,否则这样做的性能奖励可以忽略不计。对于从同一台机器提供静态内容和 API 的小型应用程序,实际上应该没有影响。

【讨论】:

解释得很好。谢谢:) @user32 我有一个使用 app.js.gz 的 angular2 应用程序,但浏览器没有对该文件执行任何操作。我为此提出了一个问题:***.com/questions/41047617/… @user32 我基本上只是希望 app.js.gz 文件与浏览器一起工作,以便我的 angular2 应用程序运行。我使用 firebase 托管并使用 cloudflare。我需要做一些设置更改吗? @AngularM 只需检查您的服务器是否支持 gzip。【参考方案2】:

Gzipped 文件夹用于服务器。你的服务器必须有这样的配置。将其写入您的服务器 conf 文件,以便他们可以发送 gzip 压缩的文件夹。

【讨论】:

以上是关于Angular 2 中的 bundle.js.gz 文件是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Angular 2 中的数据渲染静态 Angular 组件? [复制]

Angular 2 中的 CSS 主题

Angular 2 中的路由参数

防止 Angular 2 中的内存泄漏?

Ionic 2 / Angular 2 中的全局函数

Angular 2 - Observable 中的排序列表