|                                                                                                     |  | "use strict";const path = require("path");const defaultSettings = require("./src/settings.js");
function resolve(dir) {  return path.join(__dirname, dir);}
const name = defaultSettings.title; // 网址标题
const port = 8013; // 端口配置
module.exports = {  // hash 模式下可使用
  // publicPath: process.env.NODE_ENV === 'development' ? '/' : './',
  publicPath: "/",  outputDir: "dist",  assetsDir: "static",  lintOnSave: process.env.NODE_ENV === "development",  productionSourceMap: false,  devServer: {    port: port,    open: true,    overlay: {      warnings: false,      errors: true    },    proxy: {      "/api": {        target: process.env.VUE_APP_BASE_API,        changeOrigin: true,        pathRewrite: {          "^/api": "api"        }      },      "/auth": {        target: process.env.VUE_APP_BASE_API,        changeOrigin: true,        pathRewrite: {          "^/auth": "auth"        }      }    }  },  configureWebpack: {    name: name,    resolve: {      alias: {        "@": resolve("src"),        "@crud": resolve("src/components/Crud")      }    }  },  chainWebpack(config) {    config.plugins.delete("preload"); // TODO: need test
    config.plugins.delete("prefetch"); // TODO: need test
    // set svg-sprite-loader
    config.module      .rule("svg")      .exclude.add(resolve("src/assets/icons"))      .end();    config.module      .rule("icons")      .test(/\.svg$/)      .include.add(resolve("src/assets/icons"))      .end()      .use("svg-sprite-loader")      .loader("svg-sprite-loader")      .options({        symbolId: "icon-[name]"      })      .end();
    // set preserveWhitespace
    config.module      .rule("vue")      .use("vue-loader")      .loader("vue-loader")      .tap(options => {        options.compilerOptions.preserveWhitespace = true;        return options;      })      .end();
    config.when(process.env.NODE_ENV === "development", config =>      config.devtool("cheap-source-map")    );
    config.when(process.env.NODE_ENV !== "development", config => {      config        .plugin("ScriptExtHtmlWebpackPlugin")        .after("html")        .use("script-ext-html-webpack-plugin", [          {            inline: /runtime\..*\.js$/          }        ])        .end();      config.optimization.splitChunks({        chunks: "all",        cacheGroups: {          libs: {            name: "chunk-libs",            test: /[\\/]node_modules[\\/]/,            priority: 10,            chunks: "initial"          },          elementUI: {            name: "chunk-elementUI",            priority: 20,            test: /[\\/]node_modules[\\/]_?element-ui(.*)/          },          commons: {            name: "chunk-commons",            test: resolve("src/components"),            minChunks: 3,            priority: 5,            reuseExistingChunk: true          }        }      });      config.optimization.runtimeChunk("single");    });  },  transpileDependencies: ["vue-echarts", "resize-detector"]};
 |