# webpack 配置多页应用

本文将描述 webpack 配置多页应用的思路。

# 入口

首先修改 entry,将入口设置为多个

 entry: {
  filter:  path.resolve(__dirname, '../src/pages/filter/filter.js'),
  test: path.resolve(__dirname, '../src/pages/test/test.js')
}

# html-webpack-plugin

需要指定 html 模板的位置,配置如下:

new HtmlWebpackPlugin({
  // 模板来源
  template: `src/pages/${fileName}/${fileName}.html`,
  // 在 dist/index.html 的输出
  filename: process.env.NODE_ENV === 'development' ? `${fileName}.html` : `${fileName}/${fileName}.html`,
  favicon: `src/pages/${fileName}/favicon.png`
})

# 动态

为了创建好目录自动生成配置,可以新增一个 js 文件,遍历目录,生成配置。此处仅提供思路,不再赘述,具体实现可以查看源码。

# 多页输出目录

根据不同目的,可以配置不同的输出结构。

  • 多页应用
  • 多应用单项目,打包多个应用
  • 多应用但项目,打包单个应用 多页应用,可以分离页面入口,分子目录输出; 打包多个应用可以在多页应用打包基础上,将共有静态资源分贝拷贝到子目录中; 单独打包可以考虑增加命令行监听,获取输入的信息,根据输入打包单个应用。

TIP

有时候我们开发多个小应用时,并不是多人协作,那么重复的拷贝项目,安装依赖,配置基础框架等等工作是多余的。那么就可以按照这个思路进行开发。