Vue-cli:具有单个入口点的多个页面

时间:2019-08-09 23:41:28

标签: webpack-4 vue-cli-3

我具有以下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文件的生成,但我无法为此找到配置。

0 个答案:

没有答案