我具有以下Vue-cli配置:
const glob = require("glob");
const path = require("path");
const html_files = glob.sync(
"templates/" + process.env.TEMPLATE + "/public/*.html"
);
module.exports = {
outputDir: "templates/" + process.env.TEMPLATE + "/dist",
publicPath: "",
filenameHashing: false,
css: {
extract: {
filename: 'css/main.css'
}
},
pages: html_files.reduce(function(map, file) {
map[path.basename(file, ".html")] = {
template: file,
entry: "templates/" + process.env.TEMPLATE + "/src/main.js"
};
return map;
}, {}),
chainWebpack: config => {
config.optimization.splitChunks(false);
},
configureWebpack: {
output: {
filename: "js/main.js"
}
}
};
我正在尝试输出多个html文件,但是仅编译了一个javascript入口点并将其链接到所有html文件,因为html文件只会在外观上有所不同(它们都是模板主题的所有版本)。
此配置运行良好,直到我添加第二个html文件为止:
Conflict: Multiple chunks emit assets to the same filename js/main.js (chunks index and second)
我知道这是因为Webpack试图将main.js
的第二个副本写入同一位置。考虑这个问题,理想的情况是我可以为第二个和后续的html文件禁用js文件的生成,但我无法为此找到配置。