Webpack 多页应用配置实例详解

阅读时长 10 分钟读完

前言

随着互联网行业的快速发展,Web 应用呈现出了越来越多的复杂度和多样性。而对于一些较为复杂的应用,我们通常会采用多页应用的方式来进行开发。而在多页应用的开发过程中,最常用的打包工具就是 Webpack。

本篇文章将从实例出发,详细讲解如何搭建一个基于 Webpack 的多页应用。

Webpack 基础

在开始配置多页应用之前,我们需要先了解一些关于 Webpack 的基础知识。

入口与出口

在 Webpack 中,我们需要指定一个或多个入口文件。入口文件告诉 Webpack 从哪个文件开始打包。而在打包过程中,打包后的文件将会被输出到指定的出口文件中。

在上面的例子中,我们指定了一个入口文件为 src/index.js,出口文件为 dist/app.bundle.js

Loader

Loader 是 Webpack 最重要的功能之一,它用于处理非 JavaScript 文件(例如:CSS,LESS,图片等)。

当遇到这些非 JavaScript 文件时,Webpack 不知道如何进行处理。但是通过使用 Loader,我们可以告诉 Webpack 如何去处理这些文件。

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

在上面的例子中,我们配置了两个 Loader。第一个用于处理 CSS 和 LESS,第二个用于处理图片。

插件

和 Loader 一样,插件也是 Webpack 的一个核心功能。通过使用插件,我们可以完成更多复杂的任务,例如:代码压缩,提取公共代码等。

在上面的例子中,我们使用了 HtmlWebpackPlugin 插件,这个插件用于自动生成 HTML 文件,并插入我们打包后的 JavaScript 文件。

多页应用实例

在了解了一些 Webpack 的基础知识后,我们来看一下如何使用 Webpack 搭建一个多页应用。

在实例中,我们将搭建一个主页(index.html)和一个关于页面(about.html)。

准备工作

首先,我们需要创建一个目录:webpack-multi-page,并在该目录下创建一个文件夹 src,一个文件夹 dist,以及一个文件 package.json

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

package.json 文件中,我们指定了一些必要的依赖项。其中,webpack 和 webpack-cli 用于打包时使用,webpack-dev-server 用于开发时使用,html-webpack-plugin 用于生成 HTML 文件,css-loader 和 style-loader 用于处理 CSS 文件,less 和 less-loader 用于处理 LESS 文件,file-loader 用于处理图片文件。

配置 Webpack

然后,我们在 webpack-multi-page 目录下新建一个配置文件 webpack.config.js

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

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

在上面的配置中,我们指定了两个入口文件:index.jsabout.js。每个入口文件对应一个 HTML 文件。为了使 HTML 文件能够正确引入打包后的 JavaScript 文件,我们使用了 HtmlWebpackPlugin 插件。

我们将 HTML 文件保存到了 src 目录下,使用相对路径引用文件。打包后,这些文件会保存到 dist 目录下。

编写页面

现在,我们可以开始编写我们的页面了。在 src 目录下新建 index.htmlabout.html 文件。

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

在这两个页面中,我们分别引入了打包后的 JavaScript 文件和 CSS 文件。需要注意的是,在这里我们使用相对路径来引用文件。这是因为在开发过程中,Webpack Dev Server 默认会启动在根目录下,而我们在 webpack.config.js 中指定了输出文件保存的目录为 dist,所以在编写 HTML 文件时需要注意路径的设置。

编写 JavaScript 和 CSS

我们在 src 目录下创建两个 JS 文件和两个 LESS 文件,分别对应主页和关于页面。

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

这里我们将两个页面的 CSS 样式设置为相同的,方便演示。

运行项目

最后,我们在控制台输入 npm run start 命令来启动开发服务器并开始开发。

在浏览器中访问 http://localhost:8080/index.htmlhttp://localhost:8080/about.html,即可看到我们编写的页面。

打包项目

在开发完成后,我们需要将项目打包为生产环境下的代码。

在控制台中输入 npm run build 命令即可打包项目。打包后,dist 目录下将会生成打包后的文件。

总结

本文讲述了如何使用 Webpack 搭建一个多页应用。在实例中,我们使用了 Webpack 的入口和出口概念,Loader 和插件等功能。同时,我们还讲述了 HTML 文件的编写和路径设置方法。希望本文能够帮助你更好地了解如何使用 Webpack 搭建多页应用。

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

纠错
反馈