const path = require("path");

function resolve(dir) {
  return path.join(__dirname, dir);
}

const serverHost = "http://192.168.4.29:8006"
module.exports = {
  publicPath: "./",
  outputDir: "ylth",
  assetsDir: "static",
  lintOnSave: false, //process.env.NODE_ENV === 'development',
  productionSourceMap: false,
  devServer: {
    port: 9528,
    //open: true,
    hot: true,
    overlay: {
      warnings: false,
      errors: true
    },
    // webpack devServer 提供了代理的功能
    proxy: {
      // 当地址中有/api的时候会触发代理机制
      [process.env.VUE_APP_GATEWAY_API]: {
        // target: process.env.VUE_APP_GATEWAY_BASE_URL,
        target: serverHost,
        // pathRewrite: { "^/api": "" },
        changeOrigin: true, // 是否跨域
        logLevel: "debug",
        onProxyReq(proxyReq, req, res) {
          proxyReq.setHeader(
            "X-Forwarded-host",
            process.env.VUE_APP_GATEWAY_HOST
          );
          proxyReq.setHeader("Connection", "Keep-Alive"); //设置长连接
        }
      },
      "/mosty-api": {
        target: serverHost,
        changeOrigin: true,
        logLevel: "debug"
      },
    }
  },
  chainWebpack(config) {
    // 设置 svg-sprite-loader
    // config 为 webpack 配置对象
    // config.module 表示创建一个具名规则，以后用来修改规则
    config.module
      // 规则
      .rule("svg")
      // 忽略
      .exclude.add(resolve("src/icons"))
      // 结束
      .end();
    // config.module 表示创建一个具名规则，以后用来修改规则
    config.module
      // 规则
      .rule("icons")
      // 正则，解析 .svg 格式文件
      .test(/\.svg$/)
      // 解析的文件
      .include.add(resolve("src/icons"))
      // 结束
      .end()
      // 新增了一个解析的loader
      .use("svg-sprite-loader")
      // 具体的loader
      .loader("svg-sprite-loader")
      // loader 的配置
      .options({
        symbolId: "icon-[name]"
      })
      // 结束
      .end();
    //更改浏览器标题
    config.plugin("html").tap((args) => {
      args[0].title = "公安";
      return args;
    });
  },
  css: {
    loaderOptions: {
      sass: {
        prependData: `@import "@/styles/index.scss";`
      }
    }
  }
};
