vue3+vite+ts前端项目,接口地址代理两个,然后如何配置.env.development文件、request.ts文件、vite.config.ts文件
时间: 2024-11-29 09:34:31 浏览: 6
基于vite+vue3+pinia+element-plus+ts后台管理系统源码+项目说明.zip
5星 · 资源好评率100%
在 Vue3、Vite 和 TypeScript 的前端项目中,如果你需要对两个不同的接口地址进行代理,你需要做以下几个步骤:
1. **创建.env.development 文件**:
在项目的根目录下创建一个名为 `.env.development` 的文件,用于存储环境变量。你可以定义两个代理相关的变量,例如:
```
# .env.development
API_BASE_URL_1=https://api.example.com/v1
API_BASE_URL_2=https://api.example.com/v2
```
这样你可以在其他配置文件中引用这些变量。
2. **request.ts 配置**:
创建一个 `src/api/request.ts` 文件,这里通常会有一个全局的 axios 实例,用于发送请求。添加一个函数来配置代理,可以使用 Vite 的内置插件 `vite-plugin-proxy` 或者第三方库如 `axios-middleware` 来处理。示例:
```typescript
import axios from 'axios';
import { createProxyMiddleware } from 'http-proxy-middleware';
// 代理配置
const apiProxies = {
'/api/*': {
target: process.env.API_BASE_URL_1,
changeOrigin: true,
},
'/api-v2/*': {
target: process.env.API_BASE_URL_2,
changeOrigin: true,
}
};
const proxyMiddleware = (app) => {
app.use(
createProxyMiddleware(apiProxies)
);
};
export default {
init(app): void {
proxyMiddleware(app);
},
axiosInstance: axios.create({
baseURL: process.env.BASE_API_URL || '', // 使用环境变量作为基础URL
timeout: 5000, // 超时时间
headers: {
'Content-Type': 'application/json',
},
}),
};
```
在需要发送请求的地方导入这个模块,并使用它的 axios 实例。
3. **vite.config.ts 配置**:
在 `vite.config.ts` 中引入并应用 `proxyMiddleware`。这通常是基于 Vite 的 `createServer` 方法来配置:
```typescript
import { createApp, defineConfig } from 'vite';
import request from './api/request';
export default defineConfig({
server: {
middlewareMode: true,
port: 3000,
},
plugins: [
request.init, // 添加 request 初始化到 plugins 列表
],
});
```
现在,Vite 会在运行时自动处理这两个代理。
阅读全文