"use strict"; // 基础配置文件 const path = require("path"); const webpack = require("webpack"); // 拼接路径 function resolve(dir) { return path.join(__dirname, dir); } // 基础路径 注意发布之前要先修改这里 const BASE_URL = process.env.NODE_ENV === "production" ? "/frontend/" : "/"; module.exports = { publicPath: BASE_URL, // 根据你的实际情况更改这里 productionSourceMap: false, devServer: { publicPath: BASE_URL, // 和 baseUrl 保持一致 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: {}, }, }, // after: require("./mock/mock-server.js"), }, css: { loaderOptions: { less: { modifyVars: { "ai-prefix": "ai", "primary-color": "#2ECCCD", }, paths: [resolve("node_modules"), resolve("src")], javascriptEnabled: true, }, }, }, configureWebpack: { plugins: [ new webpack.ContextReplacementPlugin( /moment[\\/]locale$/, /^\.\/(zh-cn|en-us)$/ ), ], }, chainWebpack: (config) => { const svgRule = config.module.rule("svg"); svgRule.uses.clear(); svgRule.include .add(resolve("src/assets/svg-icons")) .end() .use("svg-sprite-loader") .loader("svg-sprite-loader") .options({ symbolId: "ai-[name]", }) .end(); // image exclude const imagesRule = config.module.rule("images"); imagesRule .test(/\.(png|jpe?g|gif|webp|svg)(\?.*)?$/) .exclude.add(resolve("src/assets/svg-icons")) .end(); // 重新设置 alias config.resolve.alias.set("@", resolve("src")); }, };