001 vue.config相关
const proxyURL = require("./src/common/proxy-config").proxyURL;
const baseURL = require('./src/common/proxy-config').baseURL;
const path = require('path');
function resolve(dir) {
return path.join(__dirname, dir);
}
module.exports = {
assetsDir: "static",
productionSourceMap: false,
devServer: {
host: '0.0.0.0',
port: 8890, // 端口号
proxy: {
[baseURL]: {
target: proxyURL,
changeOrigin: true,
autoRewrite: true,
},
},
},
};
当然,下面是对这段 vue.config.js 配置文件的详细分析,包括每个部分的作用和实现逻辑。
1. 引入模块和变量
const proxyURL = require("./src/common/proxy-config").proxyURL;
const baseURL = require('./src/common/proxy-config').baseURL;
const path = require('path');
-
proxyURL和baseURL:- 这两个变量是从
./src/common/proxy-config模块中导入的。假设proxy-config.js文件内容如下:module.exports = { proxyURL: 'http://api.example.com', baseURL: '/api' }; proxyURL是目标服务器的 URL,例如http://api.example.com。baseURL是需要代理的路径前缀,例如/api。
- 这两个变量是从
-
path模块:path是 Node.js 的内置模块,用于处理和转换文件路径。
2. 辅助函数 resolve
function resolve(dir) {
return path.join(__dirname, dir);
}
resolve函数:- 这个函数用于将相对路径转换为绝对路径。
__dirname是 Node.js 的全局变量,表示当前模块的目录名。path.join(__dirname, dir)将当前模块的目录名与传入的相对路径dir连接起来,生成一个绝对路径。
3. 配置对象 module.exports
module.exports = {
assetsDir: "static",
productionSourceMap: false,
devServer: {
host: '0.0.0.0',
port: 8890, // 端口号
proxy: {
[baseURL]: {
target: proxyURL,
changeOrigin: true,
autoRewrite: true,
},
},
},
};
-
assetsDir: "static":- 指定生成的静态资源目录为
static。这意味着在构建项目时,所有的静态资源(如图片、字体等)将会被放置在dist/static目录下。
- 指定生成的静态资源目录为
-
productionSourceMap: false:- 生产环境下不生成 source map。source map 用于调试,但在生产环境中生成 source map 会增加打包体积和构建时间,通常不需要。
-
devServer:- 配置开发服务器的设置。
host: '0.0.0.0':- 允许外部设备通过局域网访问开发服务器。
0.0.0.0表示监听所有网络接口。
- 允许外部设备通过局域网访问开发服务器。
port: 8890:- 开发服务器运行的端口号为 8890。
proxy:- 配置代理,用于解决开发环境下的跨域问题。
[baseURL]:- 动态生成代理路径。
baseURL是一个变量,假设其值为/api,则代理配置为{ '/api': { ... } }。
- 动态生成代理路径。
target: proxyURL:- 目标服务器的 URL。假设
proxyURL的值为http://api.example.com,则所有匹配/api的请求都会被代理到http://api.example.com。
- 目标服务器的 URL。假设
changeOrigin: true:- 改变请求头中的
host为target。这有助于解决跨域问题,因为目标服务器会认为请求来自同一个域名。
- 改变请求头中的
autoRewrite: true:- 自动重写路径。如果目标服务器返回的响应中包含相对路径,这些路径会被自动重写为代理路径。
总结
这段 vue.config.js 配置文件的主要作用是:
- 引入必要的模块和变量:从
proxy-config.js文件中导入proxyURL和baseURL,并引入path模块。 - 定义辅助函数:
resolve函数用于将相对路径转换为绝对路径。 - 配置开发服务器:
- 指定静态资源目录。
- 关闭生产环境下的 source map。
- 配置开发服务器的主机和端口。
- 设置代理,解决开发环境下的跨域问题。
通过这些配置,你可以确保在开发过程中能够顺利地访问后端 API,而无需担心跨域问题。
浙公网安备 33010602011771号