如果有人对此事做过任何研究,我只是好奇。
在我的工作地点,我们在每个项目/包中都有React,Bluebird,jQuery和Lodash。
我们使用webpack捆绑所有这些依赖项,但我不确定它是否真的值得...我认为很多这些脚本都会缓存在用户的浏览器上。
使用CDN并将这些包移出webpack包会减少构建时间并简化我们的构建过程。我们必须支持IE8,所以我们必须通过envify和ES3ify运行React。
有没有人研究过浏览器可以利用多少公共库的缓存?
答案 0 :(得分:7)
Bundling减少了下载外部内容(JavaScript / CSS)所需的TCP连接数。如果您的捆绑包还缩小了内容,它还会减少客户端需要获取的字节数。
使用CDN放置您的内容......无论您是否将其捆绑...更靠近尝试下载它的网络浏览器。
为获得最佳效果,请同时使用。
捆绑是免费的,使用CDN通常很便宜。如果免费是您唯一的选择,请务必捆绑。如果您也可以预算CDN,请将捆绑的内容放在CDN上。
<强>更新强>
根据您的评论 - 不要自托管由高流量的公共CDN(如Google)托管的常见依赖项。用户已经拥有缓存中所需的内容的可能性很大。请参阅示例3 reasons why you should let Google host jQuery for you。