我正在使用 ng-cli 来构建我的应用程序。当我运行 ng build --prod 命令时,会出现两个文件:main.bundle.js 和 main.bundle.js.gz。第二个文件是什么?这个文件有什么好处呢?
我正在使用 ng-cli 来构建我的应用程序。当我运行 ng build --prod 命令时,会出现两个文件:main.bundle.js 和 main.bundle.js.gz。第二个文件是什么?这个文件有什么好处呢?
服务器和客户端之间的HTTP传输几乎总是使用压缩,而在大多数情况下使用的是gzip。
因此,对于传输时间来说,重要的不是您的bundle.js
的大小,而是bundle.js.gz
的大小,因为内容实际上总是以其gzip压缩的形式发送。
当请求bundle.js
时,服务器会即时进行gzip压缩并将其放在网络中。因此,gzip会在每个请求上运行,这对于静态内容来说效率低下。
此外,gzip的性能随着压缩级别的提高而显著下降(可以查看这篇文章)。如果可能的话,在实时处理时使用最高的压缩级别是不高效的。
一个正确配置的Web服务器应该在请求gzip版本的bundle.js
时发送bundle.js.gz
,因此您可以使用gzip提供的最高压缩级别。
在我看来,除非您的服务器主要提供可以提前压缩的静态内容,否则这种性能提升几乎可以忽略不计。对于小型应用程序,静态内容和API都是从同一台机器提供的,应该几乎没有影响。