Webpack4 中 mode 为 production 时,如何排除某些文件不被打包

阅读时长 5 分钟读完

Webpack 是一个强大的前端打包工具,它可以将多个文件打包成一个或多个文件,以减少 HTTP 请求的数量。在 Webpack4 中,mode 为 production 时,Webpack 会自动开启一些优化功能,如代码压缩和 tree shaking。但有时候我们需要排除某些文件不被打包,以减小打包后文件的体积,提高加载速度。本篇文章将介绍在 Webpack4 中如何排除某些文件不被打包。

为什么需要排除某些文件不被打包

在开发过程中,我们通常会使用一些第三方库或插件,这些库或插件可能已经被打包过了,如果我们不排除它们,它们就会被重复打包,导致打包后的文件体积变大,加载速度变慢。此外,有些文件可能不需要被打包,例如图片、字体等静态资源,这些文件可以通过其他方式加载,如 CDN 或 base64。

如何排除某些文件不被打包

Webpack 提供了两种方式来排除某些文件不被打包:exclude 和 externals。

exclude

exclude 可以排除某些文件或文件夹不被打包。在 Webpack 配置文件中,我们可以使用 exclude 属性来指定要排除的文件或文件夹。例如:

-- -------------------- ---- -------
-------------- - -
  ------ -----------------
  ------- -
    --------- -----------
  --
  ------- -
    ------ -
      -
        ----- --------
        -------- ---------------
        ---- -
          ------- --------------
        -
      -
    -
  -
-
展开代码

在上面的例子中,exclude 属性指定了要排除的 node_modules 文件夹,这样在打包时就不会将 node_modules 中的文件打包到 bundle.js 中。

externals

externals 可以将某些文件作为外部依赖,不被打包到 bundle 中。在 Webpack 配置文件中,我们可以使用 externals 属性来指定要排除的文件或文件夹。例如:

-- -------------------- ---- -------
-------------- - -
  ------ -----------------
  ------- -
    --------- -----------
  --
  ---------- -
    ------- --------
  -
-
展开代码

在上面的例子中,externals 属性指定了要排除的 jquery 文件,这样在打包时就不会将 jquery 打包到 bundle.js 中。在使用时,我们需要在 HTML 文件中手动引入 jquery。

示例代码

下面是一个完整的 Webpack4 配置文件,演示如何排除某些文件不被打包:

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

-------------- - -
  ----- -------------
  ------ -----------------
  ------- -
    --------- ------------
    ----- ----------------------- -------
  --
  ------- -
    ------ -
      -
        ----- --------
        -------- ---------------
        ---- -
          ------- --------------
        -
      --
      -
        ----- -----------------------
        -------- ---------------
        ---- -
          ------- --------------
          -------- -
            ----- ---------------
            ----------- ---------
          -
        -
      --
      -
        ----- ------------------------------
        -------- ---------------
        ---- -
          ------- --------------
          -------- -
            ----- ---------------
            ----------- --------
          -
        -
      -
    -
  --
  ---------- -
    ------- --------
  --
  -------- -
    --- -------------------
      --------- ------------------
    --
  -
--
展开代码

在上面的配置文件中,我们排除了 node_modules 文件夹、图片和字体文件不被打包,同时将 jquery 作为外部依赖。最后,使用 HtmlWebpackPlugin 插件生成 HTML 文件。

总结

在 Webpack4 中,排除某些文件不被打包可以使用 exclude 和 externals 两种方式。exclude 可以排除某些文件或文件夹不被打包,externals 可以将某些文件作为外部依赖,不被打包到 bundle 中。合理使用这两种方式可以减小打包后文件的体积,提高加载速度。

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

纠错
反馈

纠错反馈