// eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require("path");
const resolve = dir => {
return path.join(__dirname, dir);
};
module.exports = {
publicPath: process.env.NODE_ENV === "production" ? "./" : "./",
outputDir: "dist",
assetsDir: "static",
lintOnSave: true, // 是否开启eslint保存检测
//把productionSourceMap这个改为false。不然在最终打包的文件中会出现一些map文件
//map文件的作用:项目打包后,代码都是经过压缩加密的
//如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错。
//有了map就可以像未加密的代码一样,准确的输出是哪一行哪一列有错。
productionSourceMap: false, // 是否在构建生产包时生成sourcdeMap
chainWebpack: config => {
config.resolve.alias
.set("@", resolve("src"))
.set("@v", resolve("src/views"))
.set("@c", resolve("src/components"))
.set("@u", resolve("src/utils"))
.set("@s", resolve("src/service")); /* 别名配置 */
config.optimization.runtimeChunk("single");
},
devServer: {
/* 本地ip地址 */
//host: "192.168.1.107",
host: "0.0.0.0", //局域网和本地访问
port: "8080", //端口号
hot: true,
/* 是否自动打开浏览器 */
open: true,
overlay: {
warning: false,
error: true
},
/* 跨域代理 */
proxy: {
"/api": {
/* 目标代理服务器地址 */
target: 'https://www.xxx.com',
/* 允许跨域 */
changeOrigin: true,
ws: true,
pathRewrite: {
"^/api": "" //重写路径
}
}
}
}
};
axios.post(‘/api/test’, {name: ‘xiao’})
如果proxy里没有重写路径,访问的就是https://www.xxx.com/api/test,如果像上面代码那样重写路径访问的就是https://www.xxx.com/test。