Webpack 打包优化实践:externals 和 CDN 篇

阅读时长 3 分钟读完

Webpack 是一个在前端项目开发中应用广泛的打包工具。在项目打包时,会将所有代码打入一个文件中,这包括了应用的所有依赖和代码。但是,随着项目规模的逐渐增大,由此带来的包体积也会越来越大,这意味着用户需要等待更长时间才能访问您的网站。在这篇文章中,我们将介绍如何使用 externals 和 CDN 优化我们的 Webpack 打包。

什么是 externals?

在 Webpack 打包时,我们可以使用 externals 来将某些依赖排除在打包文件之外。这意味着这些依赖只需要在运行时加载,而不是被打包到主文件中。

在配置 externals 时,需要指定库名称和全局变量名,例如:

这将使 Webpack 在打包时忽略 jQuery 和 Lodash,使用全局变量 jQuery_ 来引入它们。需要确保这些库已经在网页上被加载,否则会在运行时出现错误。

什么是 CDN?

CDN 是 Content Delivery Network 的缩写,即内容分发网络。CDN 本质上是一组分布在不同地区的服务器,它们能够有效地提高数据传输速度和带宽利用率。当我们使用 CDN 时,我们可以通过向 CDN 请求文件来提供更快的网络响应速度。因为 CDN 服务器根据您的位置,将最近的服务器返回给您。

如何使用 externals 和 CDN 优化我们的打包?

使用 externals 和 CDN 来优化您的项目,需要执行以下步骤:

1. 确认要使用的外部库

对于一些普遍的库,如 jQuery、React 等,我们可以通过 CDN 来直接加载,从而避免将他们打包到我们的文件中。这不仅可以减小文件体积,也能够提高页面加载速度。

2. 配置 externals

对于一些我们在项目中使用的库,我们可以使用 externals 将它们从打包文件中排除。为了避免全局变量命名冲突,建议在这些库前加上 "window." 前缀,例如:

注意,一定要在确认这些库已经在网页上被加载了。

3. 修改项目代码引入方式

当我们使用 externals 和 CDN 时,需要修改我们的项目代码中的依赖引用方式。

对于通过 CDN 加载的库,我们可以在 HTML 文件中直接添加以下代码:

-- -------------------- ---- -------
--------- -----
------
  ------
    --------- ------------
    ---- --- ---
    ------- -----------------------------------------------------------------
  -------
  ------
    ------- -------------
  -------
-------

注意,我们需要正确地引用 CDN 上特定版本的库。

对于通过 externals 排除的库,在项目中引用时,需要添加全局变量前缀。如:

总结

使用 externals 和 CDN 可以显著减小 Webpack 的打包体积,提高页面加载速度。在使用 externals 时,需要确认依赖已经在项目中正确加载。在使用 CDN 时,需要引用正确的库版本。希望这篇文章对您有所帮助,让您的项目更加高效和快速。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64f6378ef6b2d6eab3ed2e49

纠错
反馈