webpack gzip vs express gzip

时间:2016-07-26 10:43:25

标签: express encoding compression webpack gzip

我真的很想知道webpack gzip和express gzip

之间的区别

我使用压缩包只使用了express gzip。 像这样,

app.use(compression());

但是seo analyzer说我可以更多地压缩javascript文件 我可以在my homepage的chrome devtools控制台上看到 Content-Encoding:gzip 。 所以我开始搜索压缩文件的方法,我找到了压缩webpack-plugin包来制作gzip文件。我已经使用了webpack,但没有使用compression-webpack-plugin。我正在考虑添加这个插件,如果它有助于压缩我的文件更多。

问题是

  1. 我是否需要express和webpack gzip包,或只需要一个?
  2. webpack gzip和express gzip有什么区别?

1 个答案:

答案 0 :(得分:10)

不同之处在于,Webpack压缩会在构建运行期间压缩文件一次性。然后将这些压缩版本保存到磁盘。

另一方面,

Express插件会在请求点压缩文件 。某些软件包可能内置缓存,因此性能损失只发生一次(或不经常),但通常不同之处在于这将在响应HTTP请求时发生。

对于实时压缩,让上游代理(例如Nginx)处理gzip和缓存通常更高效,因为它们是专门为此而构建的,并且不会受到影响。 Node运行时的开销(很多是用C编写的)。

另一种解决方案是让Webpack压缩文件并创建未压缩文件的.gz版本。然后,诸如express-static-gzip之类的包可以为那些预编译版本提供服务,因此您不会在请求时获取gzipping的性能损失。如果Node.js直接响应您的HTTP请求并且您没有使用上游代理/负载均衡器,这将非常有用。

使用Webpack的好处是,您可以使用最大压缩设置(或者需要更长时间来处理文件的算法),因为您可能不会在构建过程中花费额外的几秒钟,但同样如此通过启用更复杂的压缩来为HTTP访问者提供服务的时间将会更大。