代码语言:javascript复制
修改build/utils.js
代码语言:javascript复制const glob = require('glob')
const modulesPath = path.resolve(__dirname, "../src/modules")
const HtmlWebpackPlugin = require('html-webpack-plugin')
const merge = require('webpack-merge')
// 多入口配置
exports.entries = function () {
// 获取modules文件夹下所有目录下的main.js文件--入口文件
var entryFiles = glob.sync(modulesPath '/*/*.js')
var map = {}
// 遍历入口文件
entryFiles.forEach((filepath) => {
var filename = filepath.substring(filepath.lastIndexOf('/') 1, filepath.lastIndexOf('.'))
map[filename] = filepath
})
return map
}
// 多入口页面输出
exports.htmlPlugin = function () {
var entryHtml = glob.sync(modulesPath '/*/*.html')
var arr = []
entryHtml.forEach((filepath) => {
var filename = filepath.substring(filepath.lastIndexOf('/') 1, filepath.lastIndexOf('.'))
var conf = {
template: filepath,
filename: filename '.html',
inject: true,
chunks: ['manifest', 'vendor', filename]
}
// 生产环境特殊配置
if (process.env.NODE_ENV === 'production') {
conf = merge(conf, {
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotos: true
},
chunksSortMode: 'dependency'
})
}
arr.push(new HtmlWebpackPlugin(conf))
})
return arr
}
修改webpack.base.conf.js
只修改entry配置
代码语言:javascript复制 // 配置多入口
entry: utils.entries(),
修改webpack.dev.conf.js
屏蔽原有的HtmlWebpackPlugin
添加如下代码
修改wenpack.prod.conf.js(参考webpakc.dev.conf.js修改)
【代码下载】
demo
使用步骤:
1、打开目录执行yarn install
2、执行yarn run dev