webpack4 入门教程:从简单到复杂

阅读时长 8 分钟读完

前言

Webpack 是一个现代化的静态模块打包工具,前端开发者可以使用它来处理 JavaScript、CSS、图片等资源,将它们打包成静态文件,以便于浏览器进行加载。

本文主要介绍 Webpack 的使用,从简易的配置开始,一步步深入掌握更加复杂的配置,最终让读者对 Webpack 有一个全面的了解。

简单的 Webpack 配置

现在,我们使用 Webpack 来打包一个简单的 JavaScript 模块。首先,我们需要创建一个新的项目,并在根目录下新建一个文件夹 src,并在该目录下新建一个名为 index.js 的 JavaScript 文件,代码如下:

然后在项目根目录下,创建一个文件 webpack.config.js,代码如下:

webpack.config.js 中,我们配置了 entryoutputentry 属性告诉 Webpack 打包入口文件,output 属性告诉 Webpack 将打包后的文件输出到哪里。在这里,我们配置让 Webpack 打包 src/index.js 文件,并将打包后的文件输出到 dist 目录下,文件名为 bundle.js

接下来,我们使用命令行工具在项目根目录下运行 Webpack:

运行后,Webpack 将会打包 src/index.js 文件,并将打包后的文件输出到 dist/bundle.js

现在我们打开 dist/bundle.js 文件,可以看到打包后的代码,其中包含我们在 src/index.js 中编写的代码。

使用 Loaders

Webpack 的强大之处在于它允许使用 loaders 处理不同类型的文件。Loaders 类似于中间件,它们可以对文件进行处理和转换。

在这里,我们将使用 css-loaderstyle-loader,它们可以帮我们处理 CSS 文件。

首先,我们需要在项目目录下安装这两个 loaders:

然后,在 src 目录下新建一个 style.css 文件,代码如下:

接下来,在 src/index.js 文件中引入 style.css 文件:

最后,在 webpack.config.js 文件中添加如下代码:

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

在这里,我们在 webpack.config.js 文件中添加了一个新配置项 module,其中 rules 用于对不同类型的文件进行处理。我们使用一个例子:所有以 .css 结尾的文件都使用 css-loaderstyle-loader 处理。其中,css-loader 将 CSS 转化为 JavaScript,而 style-loader 将该 JavaScript 插入 HTML 中的 style 标签中。

现在,在命令行中执行 Webpack 打包命令 (npx webpack),这样就完成了 CSS 文件的处理。

使用插件

Webpack 的插件可以用来进行更加高级的自定义操作。一个很常见的插件是 html-webpack-plugin,它可以将打包后的 JavaScript 文件自动插入到 HTML 文件中。

首先,在项目目录下安装该插件:

接下来,在 webpack.config.js 文件中添加如下代码:

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

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

在这里,我们在 webpack.config.js 文件中引入 HtmlWebpackPlugin,并将它添加到了 plugins 中。HtmlWebpackPlugin 会自动获取 template 的 HTML 文件,并将打包后的 JavaScript 文件自动插入到 HTML 文件中。在这个例子中,HtmlWebpackPlugin 的配置项设置了 HTML 文件的标题为 Webpack4 Tutorial

现在,在命令行中执行 Webpack 打包命令 (npx webpack),Webpack 就会根据上述配置,将打包后的 JavaScript 文件自动插入到 HTML 文件中。

高级配置

Webpack 可以进行更高级的配置,例如用于开发和生产环境的不同配置,代码分离、模块热替换等。接下来,我们将实现一个用于开发和生产环境的不同配置,并使用 mini-css-extract-plugin 插件来将 CSS 文件独立打包。

首先,我们需要在项目目录下安装 mini-css-extract-plugin 插件:

然后,我们在 webpack.config.js 文件中添加如下代码:

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

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

在这里,我们使用了一个函数式配置,该配置可以根据 Webpack 的运行模式进行不同的配置。在这个例子中,我们使用了 MiniCssExtractPlugin 插件,并仅在生产模式下启用该插件。该插件可以将 CSS 文件独立打包成一个文件。

搞定之后,我们在命令行中执行 Webpack 打包命令:

在生产模式下,Webpack 将会将 CSS 文件独立打包成独立的文件,并且该文件会自动插入到 dist/index.html 文件中。

总结

Webpack 是前端开发过程中不可或缺的工具,本文深入介绍了 Webpack 的基本概念、常用配置、使用 Loaders 和插件以及高级配置方法。我相信,如果您跟随本文所介绍的步骤,您将会掌握 Webpack 的许多方面知识,从而可以在未来的开发工作中更加轻松地使用它。

完整的示例代码可以在我的 Github 中找到:

https://github.com/wangziling100/webpack4-tutorial

如果您对本文有任何问题或是建议,欢迎在评论区分享您的想法。

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

纠错
反馈