const proxy = {
  "/api/uq_basic": {
    target: process.env.VUE_APP_QUESTIONS_HOST_URL,
    changeOrigin: true,
  },
};

var webpack = require("webpack");
var packageData = require("./package.json");
var v = packageData.version;
const timestamp = Date.now();

let config = {
  // 这里设置项目的路径,比如 '/admin' 。设置以后 BASE_URL就有值了。
  // 注意这解决不了CDN的问题,CDN的问题要另行研究。
  // 可能的方案是另设一个替代 BASE_URL 的环境变量解决 <%%= BASE_URL %%>favicon.ico 和 ${process.env.BASE_URL}service-worker.js
  publicPath: "/admin",
  lintOnSave: process.env.NODE_ENV !== "production" ? true : "error",
  devServer: {
    proxy,
    // https://webpack.js.org/configuration/dev-server/#overlay
    client: {
      overlay: false,
    },
  },
  configureWebpack: {
    // devtool: "source-map",  // for vscode debug
    plugins: [
      // Ignore all locale files of moment.js
      new webpack.IgnorePlugin({
        resourceRegExp: /^\.\/locale$/,
        contextRegExp: /moment$/,
      }),
      // new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
    ],
  },
  transpileDependencies: [/\bvue-awesome\b/],
  productionSourceMap: false,
};

if (process.env.NODE_ENV === "production") {
  config.css = Object.assign(config.css || {}, {
    extract: {
      filename: `css/[name].${v}.${timestamp}.css`,
      chunkFilename: `css/[name].${v}.${timestamp}.css`,
    },
  });
  config.configureWebpack = Object.assign(config.configureWebpack || {}, {
    output: {
      filename: `js/[name].${v}.${timestamp}.js`,
      chunkFilename: `js/[name].${v}.${timestamp}.js`,
    },
  });
}

module.exports = config;
require("events").EventEmitter.defaultMaxListeners = 0;