vue项目打包后如何更改axios封装的baseURL地址
时间: 2024-10-19 21:10:02 浏览: 41
在Vue项目中,当你已经将axios进行了封装,并且这个封装通常会设置一个全局的`baseURL`,如你在main.js或api文件中设置了这个变量,那么在项目打包之后,直接修改这个全局变量通常是不可行的,因为静态资源已经在构建阶段被打包到生产环境的静态目录下。
如果你想要动态地改变axios的`baseURL`,你可以考虑以下几种方式:
1. 使用环境变量:可以使用npm scripts中的`process.env`或者vue.config.js的`publicPath`属性来提供不同的baseURL,根据部署环境(如开发、测试、生产)加载不同的配置。
```javascript
// 在vue.config.js中
const isProd = process.env.NODE_ENV === 'production'
export default {
devServer: {
publicPath: '/your-api-url/', // 开发环境API URL
},
build: {
publicPath: '/api/', // 生产环境API URL
},
}
```
然后在axios实例创建的时候,通过读取环境变量来设置baseURL。
```javascript
import axios from 'axios';
import env from '@/env';
axios.defaults.baseURL = isProd ? env.productionApiUrl : env.developmentApiUrl;
```
2. 利用插件或中间件:在axios的拦截器中,可以根据请求的目标地址动态调整baseURL,例如使用axios-plugin-http-proxy。
3. 对象字面量创建实例:如果你的封装允许,每次发起请求时传入完整的url也行。
```javascript
let axiosInstance = axios.create({
baseURL: isProd ? '/api/' : '/your-api-url/'
});
// 然后在需要的地方使用
axiosInstance.get('/users');
```
阅读全文