【问题标题】:Is bundling (webpack/browserify) faster than going through a CDN?捆绑(webpack/browserify)比通过 CDN 更快吗?
【发布时间】:2015-04-27 17:23:36
【问题描述】:

我只是好奇是否有人对此事进行过任何研究。

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

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

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

有没有人研究过浏览器可以在多大程度上利用公共库的缓存?

【问题讨论】:

    标签: jquery browserify webpack


    【解决方案1】:

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

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

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

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

    更新

    根据您的评论 - 不要自行托管由高流量公共 CDN(例如 Google)托管的常见依赖项。用户很有可能已经在缓存中拥有您需要的内容。参见例如3 reasons why you should let Google host jQuery for you

    【讨论】:

    • 我想我这个问题的措辞不正确。我想知道的是,是否有人研究过客户端多久可以利用缓存来处理公共库(如 Jquery)的 public-cdn 版本。在我看来,大多数浏览器都会缓存 jquery,因为每个站点都使用它。
    • 啊。请参阅*.com/questions/1302949/…(旧答案)和encosia.com/…