vue.config.js 2.15 KB
Newer Older
wanli's avatar
wanli committed
1
"use strict";
wanli's avatar
wanli committed
2
// 基础配置文件
wanli's avatar
wanli committed
3 4
const path = require("path");
const webpack = require("webpack");
wanli's avatar
wanli committed
5 6
// 拼接路径
function resolve(dir) {
wanli's avatar
wanli committed
7
  return path.join(__dirname, dir);
wanli's avatar
wanli committed
8 9
}
// 基础路径 注意发布之前要先修改这里
wanli's avatar
wanli committed
10 11
const BASE_URL = process.env.NODE_ENV === "production" ? "/frontend/" : "/";

wanli's avatar
wanli committed
12
module.exports = {
wanli's avatar
wanli committed
13
  publicPath: BASE_URL, // 根据你的实际情况更改这里
wanli's avatar
wanli committed
14 15
  productionSourceMap: false,
  devServer: {
wanli's avatar
wanli committed
16
    publicPath: BASE_URL, // 和 baseUrl 保持一致
wanli's avatar
wanli committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
    port: 8080,
    open: true,
    overlay: {
      warnings: false,
      errors: true,
    },
    proxy: {
      // change xxx-api/login => mock/login
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      "/api/v1": {
        target: "http://127.0.0.1:5001/",
        changeOrigin: true,
        pathRewrite: {},
      },
      "/file-manager": {
        target: "https://file-manager.webmai.ru/",
        changeOrigin: true,
        pathRewrite: {},
      },
      "/uowap/": {
        target: "https://web-drcn.hispace.dbankcloud.cn/",
        changeOrigin: true,
        pathRewrite: {},
      },
    },
wanli's avatar
wanli committed
42
    // after: require("./mock/mock-server.js"),
wanli's avatar
wanli committed
43 44 45 46 47
  },
  css: {
    loaderOptions: {
      less: {
        modifyVars: {
wanli's avatar
wanli committed
48 49
          "ai-prefix": "ai",
          "primary-color": "#2ECCCD",
wanli's avatar
wanli committed
50
        },
wanli's avatar
wanli committed
51 52 53 54
        paths: [resolve("node_modules"), resolve("src")],
        javascriptEnabled: true,
      },
    },
wanli's avatar
wanli committed
55 56 57
  },
  configureWebpack: {
    plugins: [
wanli's avatar
wanli committed
58 59 60 61 62
      new webpack.ContextReplacementPlugin(
        /moment[\\/]locale$/,
        /^\.\/(zh-cn|en-us)$/
      ),
    ],
wanli's avatar
wanli committed
63
  },
wanli's avatar
wanli committed
64 65 66 67 68
  chainWebpack: (config) => {
    const svgRule = config.module.rule("svg");
    svgRule.uses.clear();
    svgRule.include
      .add(resolve("src/assets/svg-icons"))
wanli's avatar
wanli committed
69
      .end()
wanli's avatar
wanli committed
70 71
      .use("svg-sprite-loader")
      .loader("svg-sprite-loader")
wanli's avatar
wanli committed
72
      .options({
wanli's avatar
wanli committed
73
        symbolId: "ai-[name]",
wanli's avatar
wanli committed
74
      })
wanli's avatar
wanli committed
75
      .end();
wanli's avatar
wanli committed
76
    // image exclude
wanli's avatar
wanli committed
77
    const imagesRule = config.module.rule("images");
wanli's avatar
wanli committed
78 79
    imagesRule
      .test(/\.(png|jpe?g|gif|webp|svg)(\?.*)?$/)
wanli's avatar
wanli committed
80 81
      .exclude.add(resolve("src/assets/svg-icons"))
      .end();
wanli's avatar
wanli committed
82
    // 重新设置 alias
wanli's avatar
wanli committed
83 84 85
    config.resolve.alias.set("@", resolve("src"));
  },
};