2016-07-26 35 views
3

我真的想知道的WebPack gzip和gzip的快递的WebPack的gzip VS快递的gzip

我只用通过压缩包快递的gzip之间的差异。 这样,

app.use(compression()); 

seo analyzer说,我可以更压缩JavaScript文件,尽管 我可以看到内容编码:在my homepage铬devtools控制台的gzip。 因此,我开始搜索压缩文件的方式,并找到了压缩webpack插件包,它使得gzip文件。我已经使用webpack,但没有使用compression-webpack-plugin。我正在考虑添加这个插件,如果它有助于更​​多地压缩我的文件。

的问题是

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

回答

4

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

另一方面,Express插件会在请求的位置压缩文件。某些程序包可能内置了缓存,因此性能损失只发生一次(或不频繁),但通常不同的是,这种情况会在响应HTTP请求时发生。

对于实时压缩,通常让上游代理(如Nginx)处理gzip和caching是更高效的,因为它们是专门为此构建的,并且不会承受节点运行时的开销(很多用C写成)。

另一种解决方案是让Webpack压缩文件并创建未压缩文件的.gz版本。然后,像express-static-gzip这样的软件包可以提供这些预编译版本,所以在请求时你不会受到gzipping的性能影响。如果Node.js直接响应您的HTTP请求并且您没有使用上游代理/负载均衡器,那么这很有用。

使用Webpack的好处是您可以使用最大压缩设置(或者需要较长时间来压缩文件的算法),因为您可能不关心构建过程中多余的几秒钟,但同时通过启用更复杂的压缩技术为您的HTTP访问者提供服务将是一笔更大的交易。