基于 webpack 的多页面应用工程架构实践

在前端开发中,多页面应用(MPA)是一种常见的应用类型。相比于单页面应用(SPA),MPA 更适合一些需要 SEO 或者复杂交互场景的应用。然而,MPA 的开发和维护往往需要更多的工作量和技术复杂度。本文将介绍基于 webpack 的 MPA 工程架构实践,从而提高开发效率和代码质量。

工程架构设计

架构图

目录结构

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

技术选型

  • Webpack:打包工具,用于将多个页面的代码打包成独立的文件。
  • Babel:将 ES6+ 代码转换为 ES5,以兼容更多的浏览器。
  • Sass:CSS 预处理器,提供更加强大的样式编写能力。
  • ESlint:静态代码检查工具,用于规范化代码风格和减少错误。

实践步骤

初始化项目

创建一个空的项目目录,并初始化 npm。

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

安装依赖

安装 webpack 和一些常用的 loader 和 plugin。

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

配置 webpack

在项目根目录下创建 webpack.config.js 文件,并添加以下代码:

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

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

以上代码中,我们定义了两个入口文件,分别对应两个页面。使用 HtmlWebpackPlugin 生成 HTML 文件,并将打包后的 JS 和 CSS 文件引入。使用 MiniCssExtractPlugin 将 CSS 提取为单独的文件。

配置 ESlint

在项目根目录下创建 .eslintrc.js 文件,并添加以下代码:

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

以上代码中,我们使用了 Airbnb 的代码风格规范,并对一些规则进行了调整。

编写代码

src 目录下,为每个页面创建一个子目录,包含 HTML、JS 和 SCSS 文件。例如:

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

运行项目

package.json 中添加以下命令:

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

使用 npm start 命令启动开发服务器,使用 npm run build 命令打包项目。

总结

本文介绍了基于 webpack 的 MPA 工程架构实践,包括目录结构、技术选型、实践步骤和代码示例。通过使用该工程架构,可以提高开发效率和代码质量,适用于中大型的多页面应用。

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