WebPack 打包时如何处理公共模块的引用?

在前端开发中,我们经常会使用 WebPack 进行代码打包和模块化管理。在项目中,我们可能会引用一些公共模块,如 jQuery、React 等,这些模块在多个页面中都会被用到。如果每个页面都单独打包这些公共模块,会导致重复打包,浪费资源,增加加载时间,降低用户体验。因此,如何处理公共模块的引用是一个很重要的问题。

什么是公共模块?

公共模块是指在多个页面中都会被用到的模块,如 jQuery、React 等。

如何处理公共模块的引用?

方式一:使用 WebPack 的 splitChunks 配置

在 WebPack4 中,可以使用 splitChunks 配置来处理公共模块的引用。这个配置可以将公共模块打包到一个单独的文件中,避免重复打包。

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

上面的配置中,cacheGroups 是一个缓存组,可以将多个模块打包到一个文件中。我们可以将公共模块打包到一个名为 commons 的文件中。

方式二:使用 externals 配置

另一种处理公共模块的方式是使用 externals 配置。这个配置可以将公共模块从打包文件中剔除,避免重复打包。

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

上面的配置中,我们将 jQuery 和 React 从打包文件中剔除,然后在页面中使用 script 标签引入这些模块。

总结

在前端开发中,处理公共模块的引用是一个很重要的问题。我们可以使用 WebPack 的 splitChunks 配置或 externals 配置来处理公共模块的引用。这些配置可以避免重复打包,减少资源浪费,提高用户体验。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65719fb7d2f5e1655da5132e


猜你喜欢

  • Vue.js 中如何使用 vue-router 实现后端路由

    Vue.js 是一款流行的前端框架,它提供了很多方便的功能来开发单页应用。其中,vue-router 是一个非常重要的插件,它可以实现前端路由的功能,让用户在浏览器中切换不同的页面时不需要重新加载整个...

    10 个月前
  • Mongoose 中出现的 TypeError: Model is not a constructor 错误解决方法

    前言 Mongoose 是一个优秀的 Node.js 数据库框架,它提供了方便的 API,使得我们可以轻松地操作 MongoDB 数据库。然而,在使用 Mongoose 进行开发时,有时会遇到 Typ...

    10 个月前
  • Docker 高可用架构实现技巧分享

    前言 Docker 作为一个强大的容器化技术,已经被广泛应用于各种场景中。在实际应用中,我们往往需要保证 Docker 容器的高可用性,以确保服务的稳定性和可靠性。

    10 个月前
  • 如何使用 API Gateway 搭建 Serverless 服务

    随着云计算技术的发展,Serverless(无服务器)架构逐渐成为了云计算领域的热门话题。Serverless 架构的优点在于无需自己搭建服务器,可以快速构建服务并且只需支付使用的资源,因此越来越多的...

    10 个月前
  • AngularJS 中解决错误的 “$digest already in progress”

    在 AngularJS 中,当我们在应用程序中使用双向数据绑定时,可能会遇到一个错误:“$digest already in progress”。这个错误通常是由于在一个 $digest 循环中触发了...

    10 个月前
  • Hapi:如何使用 Hapi 的 WebSocket 握手插件

    WebSocket 是一种用于在客户端和服务器之间进行双向通信的技术。在前端开发中,我们经常需要使用 WebSocket 来实现实时通信功能,例如聊天室、在线游戏等。

    10 个月前
  • PWA 的 Service Worker 使用详解

    PWA 的 Service Worker 使用详解 随着移动互联网的快速发展,PWA(Progressive Web App)作为一种新型的 Web 应用程序模式,越来越受到前端开发者的关注。

    10 个月前
  • 如何在 Next.js 中处理动态 url 路由?

    在 Next.js 中处理动态 url 路由是一项常见的任务,特别是在构建动态内容的网站或应用程序时。在本文中,我们将介绍如何在 Next.js 中处理动态 url 路由,包括如何设置和访问动态路由参...

    10 个月前
  • Chai.js 结合 Karma 进行自动化测试

    在前端开发中,自动化测试是一个非常重要的环节。它可以帮助我们验证代码的正确性,提高开发效率和代码质量。在本文中,我们将介绍如何使用 Chai.js 和 Karma 来进行自动化测试。

    10 个月前
  • 优化 Java 程序的常用技巧

    在编写 Java 程序时,我们通常会面临着性能瓶颈的问题。为了提高程序的运行效率和响应速度,我们需要使用一些优化技巧。本文将介绍一些常用的 Java 程序优化技巧,并提供相应的示例代码。

    10 个月前
  • 如何在 Koa 中使用 CORS 解决跨域问题?

    什么是跨域问题? 跨域问题指的是在同源策略下,当一个网页的脚本试图访问其他网站的资源时,浏览器会阻止这种行为,这是为了防止跨站脚本攻击。同源策略指的是协议、域名和端口号都相同的两个网站视为同源,否则视...

    10 个月前
  • 如何输在 React Native 中使用 React Navigation

    简介 React Navigation 是一个用于 React Native 应用的导航库。它使得在应用程序中添加基于堆栈的导航变得非常容易,同时还提供了许多其他功能,如选项卡、侧边菜单和模态框等。

    10 个月前
  • 自定义元素中的 :host 和 :host-context

    随着 Web 技术的发展,前端开发变得越来越复杂,自定义元素是其中的一种技术。在自定义元素中,:host 和 :host-context 是两个非常重要的伪类。本文将详细讲解这两个伪类的用法和实际应用...

    10 个月前
  • SSE 架构中的应用场景与实现方式

    什么是 SSE? SSE(Server-Sent Events)是一种基于 HTTP 的服务器推送技术,它可以实现服务器向客户端推送事件的功能。相比于传统的 AJAX 轮询方式,SSE 可以更加实时地...

    10 个月前
  • SASS 如何实现 CSS 中单位的自动转换

    在前端开发中,我们经常需要在不同的设备上展示相同的页面,但是不同的设备可能有不同的分辨率和屏幕大小,这就需要我们在编写 CSS 样式时考虑到不同的设备,并使用不同的单位来适应不同的屏幕。

    10 个月前
  • Promise 实战:实现动态图片资源推送至 CDN 的异步更新

    在前端开发中,我们经常需要加载大量的图片资源,而这些图片可能会被频繁地更新。为了加快图片的加载速度,我们可以使用 CDN(内容分发网络)来缓存图片资源,使用户可以更快地访问到这些图片。

    10 个月前
  • Sequelize:如何处理自增 ID

    自增 ID 是关系型数据库中常见的一种主键生成方式,可以确保每条记录都有唯一的标识符。在 Sequelize 中,我们可以使用 autoIncrement 属性来实现自增 ID 的生成。

    10 个月前
  • ES7 中的 Array.prototype.findIndex:查找合适的数组项

    在前端开发中,我们经常需要对数组进行操作,其中查找合适的数组项是非常常见的操作。ES7 中新增了 Array.prototype.findIndex 方法,它可以帮助我们更加方便地查找合适的数组项。

    10 个月前
  • 一文看懂 Mocha、Jasmine 和 Karma

    前言 在前端开发中,测试是必不可少的一环。测试可以保证代码的质量,降低维护成本,提高代码的可维护性和可读性。而 Mocha、Jasmine 和 Karma 是前端测试中最常用的三个工具。

    10 个月前
  • Babel 转换 ES7 的 Decorator 时出现错误的解决方法

    在前端开发中,使用 ES7 的 Decorator 是很常见的,但是在使用 Babel 编译时,有时会出现错误,导致编译失败。本文将介绍如何解决这些错误。 什么是 Decorator Decorato...

    10 个月前

相关推荐

    暂无文章