我正在开始一个新的项目,我正试着向前看。我以前使用过Browserify。对于我的新项目,我想使用Webpack、Rollup或SystemJS。到目前为止,Webpack看起来是最成熟的,拥有大量令人惊叹的功能。
不过,我担心的是,在一两年内,随着HTTP/2的采用,Webpack将变得无关紧要,所以我想知道,对于一个通过HTTP/2提供服务的网站,Webpack有什么价值?我不是在寻求意见,而是在寻求一个事实上的解释,说明使用带有HTTP/2的Webpack的好处。如果没有好处,或者好处很少,那也会对我的决定有所帮助。
发布于 2016-06-01 19:59:24
TL;DR
在HTTP/1.1中,您必须发出尽可能少的请求才能获得性能;在HTTP/2中,每个请求对性能的影响很小,但仍然可以遇到资源约束和依赖项管理,这将需要一个捆绑工具,如webpack。
长版本:
Webpack (或任何其他捆绑器)仍然可以在HTTP/2世界中提供价值,因为虽然HTTP/2允许从客户机到服务器的多路复用、异步、同时查询,但这并不意味着您连接到的实际服务器有无限的容量来处理它们,甚至不会允许它们。
在连接时发送的设置帧中,大多数服务器会将并发流的数量限制在一个合理的值,如100。这意味着你不能发出超过100个并发请求,这是一个问题,例如,如果你有一个包含数百个js文件的大型非捆绑的React应用程序。
此外,在许多情况下,您需要在javascript文件之间传递依赖项,如果不捆绑所有依赖项,则需要多次请求往返,因为浏览器只会在接收到之前的响应时发现依赖项,从而否定了HTTP/2的好处。(或者,服务器可以自动推送依赖项,但这会产生一系列其他问题)。
由于这些原因,使用webpack打包大量同构捆绑包是有意义的,以确保您的最大并发请求保持在服务器限制以下,同时使您的捆绑包具有足够的粒度以利用高效的浏览器缓存。
https://stackoverflow.com/questions/37556283
复制相似问题