生产项目通常有多个环境,本地开发时就需要我们区分不同的环境进行联调或修复缺陷。可通过env进行不同环境的配置,并结合代理,达到本地开发,不同环境调用相应接口地址及资源的效果。
实现命令行:
npm run serve --env=ft1
vue.config.js
console.log(process.env.npm_config_env)
const env = process.env.npm_config_env
let api = 'https://apift2-xxx' // 默认的接口路径
if (env === 'ft1') {
api = 'https://apift1-xxx' // 实际的ft1环境路径
} else if (env === 'pd') {
api = 'https://api.xxx' // 实际的生产环境路径
}
通过process.env.npm_config_env可以获取到命令行中的env值,进行打印:
代理配置
module.exports = {
devServer: {
open: true,
proxy: {
'/api': {
target: api, // 要请求的域名
pathRewrite: { '^/api': '' }, // 通过pathRewrite重写地址,将前缀/api转为/
ws: false, // 是否启用websockets
changeOrigin: true // 开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
}
}
}
}