捆绑(webpack/browserify)比通过CDN更快吗?

Dun*_*ney 10 jquery browserify webpack

如果有人对此事做过任何研究,我只是很好奇.

在我的工作地点,我们在每个项目/包中都有React,Bluebird,jQuery和Lodash.

我们使用webpack捆绑所有这些依赖项,但我不确定它是否真的值得...我认为很多这些脚本都会缓存在用户的浏览器上.

使用CDN并将这些包移出webpack包会减少构建时间并简化我们的构建过程.我们必须支持IE8,所以我们必须通过envify和ES3ify运行React.

有没有人研究过浏览器可以利用多少公共库的缓存?

Eri*_* J. 8

捆绑减少了下载外部内容(JavaScript/CSS)所需的TCP连接数.如果您的捆绑包还缩小了内容,它还会减少客户端需要获取的字节数.

使用CDN放置您的内容......无论您是否将其捆绑...更靠近尝试下载它的Web浏览器.

为获得最佳效果,请同时使用.

捆绑是免费的,使用CDN通常很便宜.如果免费是您唯一的选择,请务必捆绑.如果您也可以预算CDN,请将捆绑的内容放在CDN上.

UPDATE

根据您的评论 - 不要自行托管由高流量,公共CDN(如Google)托管的常见依赖项.用户已经拥有缓存中所需的内容的可能性很大.例如,请参阅为什么您应该让Google为您托管jQuery的3个原因.

  • 啊.请参阅http://stackoverflow.com/questions/1302949/what-percentage-of-browsers-have-googles-cached-version-of-jquery-already-loade(较旧的答案)和http://encosia.com/3 -reasons - 为什么 - 你 - 应该 - 让 - 谷歌宿主的jQuery适合你/ (3认同)