Webpack 构建多页应用指南

阅读时长 6 分钟读完

前言

Webpack 是一款非常流行的打包工具,能够将各种各样的资源打包成一个或多个 bundle,并且还支持热更新,实现了前端性能优化的同时,也极大地提升了开发效率。但是,官方文档对于多页应用的构建并没有介绍得很详细,本文旨在分享如何使用 Webpack 构建多页应用。

什么是多页应用

多页应用(MPA,Multiple Page Application)是指一个网站由多个页面组成,并且每个页面之间通过链接跳转实现页面切换。相对 SPA(Single Page Application),MPA 更符合传统的 web 架构,对 SEO 非常友好。

Webpack 构建多页应用

Webpack 的单页应用构建方式是非常常见的,但是如何构建多页应用呢?

1. 多入口

多页应用的核心是多个 HTML 页面,因此需要多个入口文件。在我们的项目中,可以在 entry 配置中为每个页面提供一个入口文件:

以上配置会为三个页面创建 index.jsabout.jscontact.js 三个入口文件。

2. 多输出

接下来,需要为每个页面生成一个 HTML 文件。为此,可以使用 html-webpack-plugin 插件,它支持根据模板生成 HTML 文件,并且可以自动引入对应的 JS 和 CSS 文件。

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

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

注意,通过 chunks 属性可以指定每个 HTML 文件需要引入哪些 JS 文件。

3. 处理 CSS

在多页应用中,每个页面可能会使用不同的 CSS 文件,我们可以在 entry 配置中设置多个 CSS 入口文件,并且在 plugins 配置中使用 mini-css-extract-plugin 插件将 CSS 提取到指定的文件中。

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

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

4. 处理图片

在多页应用中,每个页面可能也会使用不同的图片,需要对图片进行处理。可以使用 file-loaderurl-loader 将图片复制到输出目录,并且生成对应的 URL 或 data URI。

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

这里使用 url-loader 将小于 8KB 的图片转换成 data URI,大于 8KB 的图片则通过 file-loader 复制到输出目录。

总结

本文介绍了 Webpack 构建多页应用的几个关键点,包括多入口、多输出、处理 CSS 和处理图片。希望本文能够帮助读者更好地理解和应用 Webpack。完整的示例代码可以在 GitHub 上查看。

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

纠错
反馈