mogo-h5plus/build/multipage.js
2020-04-21 13:29:13 +08:00

57 lines
1.7 KiB
JavaScript
Executable File

const fs = require("fs");
const path = require('path');
const HtmlWebpackPlugin = require("html-webpack-plugin-for-multihtml");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const config = require("../config");
// 通过页面配置文件过去页面json
function generateByConfig() {
return JSON.parse(fs.readFileSync("./src/page.json"));
}
// 生成extraEntry
const extraEntry = generateByConfig();
let newExtraEntry = {};
// 生成HtmlWebpackPlugin
let extraHtmlWebpackPlugins = [];
let haveMui = 0;
for (let i in extraEntry) {
// 配置是否使用mui plusready
const useMui = /\S+\|mui/.test(i);
const usePlusReady = /\S+\|plusReady/.test(i);
let chunk = useMui ? i.replace("|mui", "") : i;
// 如果用了mui就要导入mui资源
useMui && haveMui++;
// 提前加载plus
if (usePlusReady) chunk = chunk.replace("|plusReady", "");
newExtraEntry[chunk] = extraEntry[i];
extraHtmlWebpackPlugins.push(
new HtmlWebpackPlugin({
filename: chunk + ".html",
template: "index.html",
multihtmlCache: true,
chunks: [chunk, 'vue'],
muiCssString: useMui ? '<link rel="stylesheet" href="assets/mui/mui.css">' : "",
muiScriptString: useMui ? ' <script src="assets/mui/mui.min.js"></script>' : "",
plusReady: usePlusReady ? '<script src="html5plus://ready"></script>' : ""
// 获取mui的script
})
);
}
// 复制mui资源
if (haveMui) {
extraHtmlWebpackPlugins.push(
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, "../src/assets/mui"),
to: config.build.assetsSubDirectory + '/mui',
ignore: [".*"]
}
])
)
}
exports.extraEntry = newExtraEntry;
exports.extraHtmlWebpackPlugins = extraHtmlWebpackPlugins;