vue项目中axios生产环境配置不同接口基础路径的核心是环境变量隔离与axios实例动态注入baseurl;通过以vue_app_开头的.env文件定义vue_app_base_api,构建时自动注入process.env,再在axios.create中读取该变量作为baseurl,实现多环境自动适配。

Vue 项目中 Axios 在生产环境配置不同接口基础路径,核心是环境变量隔离 + axios 实例动态注入 baseURL。不是写死地址,也不是手动改代码,而是让构建过程自动识别当前环境并加载对应地址。
用 .env 文件管理环境变量(推荐)
在项目根目录下创建标准环境配置文件:.env.development(开发环境)
VUE_APP_BASE_API = "https://www.php.cn/link/c028b7dd285d13e19ff7a4cabf8bf700".env.production(生产环境)
VUE_APP_BASE_API = "https://www.php.cn/link/3fac57f21c01e07b20df9c3c6dff6ae4".env.staging(预发布环境,可选)
VUE_APP_BASE_API = "https://www.php.cn/link/b8feb3cce1b12e57ed29dba92abb169a"
⚠️ 注意:
递归分析 Vue 项目组件依赖,从入口文件生成组件层级图,支持 Vue 2/3,输出组件名、文件路径和属性。适用于分析组件结构、排查依赖或了解项目架构。
- 所有自定义变量必须以
VUE_APP_开头,才能被 Vue CLI 自动注入到process.env中; - 修改后需重启服务(
npm run serve)或重新打包(npm run build),变量才会生效。
在 axios 实例中读取并设置 baseURL
新建 `src/utils/request.js`,统一管理请求逻辑:import axios from 'axios'
// 创建实例时直接读取环境变量
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 10000
})
// 请求拦截器(可选:加 token、loading 等)
service.interceptors.request.use(config => {
const token = localStorage.getItem('token')
if (token) config.headers.Authorization = `Bearer ${token}`
return config
})
// 响应拦截器(可选:统一错误处理)
service.interceptors.response.use(
response => response.data,
error => Promise.reject(error)
)
export default service
组件中直接使用:
import request from '@/utils/request'
export function getUserList() {
return request.get('/users') // 实际请求 URL 是:baseURL + '/users'
}
支持多套后端地址(进阶场景)
如果项目对接多个服务(如用户中心、订单服务、文件服务),可扩展环境变量:.env.production 中添加:
VUE_APP_USER_API = "https://www.php.cn/link/537be42935b21c04fac5d9913777f7ee"
VUE_APP_ORDER_API = "https://www.php.cn/link/bc322f5115147dc674309421121d8857"
VUE_APP_FILE_API = "https://www.php.cn/link/8b8369fc782a66a1118bd9eda89ebc07"
然后分别创建专用实例:
// src/api/user.js
import axios from 'axios'
export default axios.create({ baseURL: process.env.VUE_APP_USER_API })
// src/api/order.js
import axios from 'axios'
export default axios.create({ baseURL: process.env.VUE_APP_ORDER_API })
调用时按需引入,职责清晰,互不干扰。
验证是否生效的小技巧
打包后检查生成的 `index.html` 或运行时打印: ```js console.log('当前 API 地址:', process.env.VUE_APP_BASE_API) ``` 也可在浏览器控制台执行 `window.location.href` 对比实际请求域名,确认请求发往正确地址。不复杂但容易忽略细节。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










