Webpack 常用插件及具体配置详解

阅读时长 6 分钟读完

前置知识

在了解本文所涉及的 Webpack 插件前,你需要先掌握以下几个基础知识:

  • Webpack 基础配置
  • Webpack 打包流程
  • Node.js 基础

插件概述

Webpack 插件是一个能够在 Webpack 构建过程中生效的、扩展 Webpack 功能的 JS 模块,它可以对 Webpack 流程中的各阶段进行干预,改变构建结果或者增强构建效果。Webpack 插件需要在 Webpack 配置文件中进行配置,以便让它们能够正常工作。

本文将会介绍一些 Webpack 中常用的插件及其使用方法。

1. clean-webpack-plugin

在多次打包时,构建出来的文件会覆盖原来的文件,这会导致一些已被删除的旧文件实际上仍存在于浏览器缓存之中,使客户端拿到的是旧的资源文件,从而导致缓存混乱。为了解决这个问题,我们可以使用 clean-webpack-plugin 插件,在重新构建之前自动清空构建目录中的旧文件。

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

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

2. html-webpack-plugin

html-webpack-plugin 可以根据模板自动构建 HTML 文件,并将打包后的 JS/CSS 文件链接到 HTML 文件中。

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

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

3. copy-webpack-plugin

在 Webpack 中,我们可以通过打包图片的方式,将图片打包成一个连续的图片文件,通过 base64 的方式引用到项目中。但是这种方式处理的图片不能缓存,而且会影响性能。为了解决这个问题,我们可以使用 copy-webpack-plugin 插件,将图片等静态资源文件复制到构建目录中。

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

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

4. mini-css-extract-plugin

Webpack 可以将 css 代码打包进 JS 文件中,也可以将多个 CSS 文件合并成一个 CSS 文件导入到 HTML 中。但是这种方式会导致 HTTP 请求数量过多,进而影响页面的渲染速度。所以我们可以使用 mini-css-extract-plugin 插件,将 CSS 文件单独拎出来打包。

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

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

5. webpack-bundle-analyzer

随着模块的增多,Webpack 打包会变得越来越慢,此插件可以帮助我们分析和解决此类问题,以便在上线前更好地优化打包文件。我们可以通过使用 webpack-bundle-analyzer 了解打包后所有模块的构成,从而更好地进行优化。

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

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

6. DefinePlugin

可以根据定义的环境变量,区分开发环境与生产环境。

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

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

7. ProvidePlugin

在我们的代码中引入一些使用频率很高的库,如 jQuery、lodash 等,每次 import 都会很繁琐。使用 ProvidePlugin 可以在每个模块中注入一个变量,使这个变量无需再 require/import,我们可以直接使用。

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

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

总结

通过本文,你已经了解到了 Webpack 常用插件及其使用方法。适当的插件会极大地提升构建效率,使得 Webpack 的打包流程更加顺畅。

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

纠错
反馈