vue3+vite+ts前端项目,接口地址需要代理两个,如何配置.env.development文件、request.ts文件、vite.config.ts文,并且在
时间: 2024-11-29 07:34:41 AIGC 浏览: 109
在 Vue3 + Vite + TypeScript 的前端项目中,如果你需要对不同的接口地址进行代理处理,通常会通过环境变量、axios拦截器以及Vite的`vite.config.ts`来配置。以下是具体的步骤:
1. **`.env.development`文件**:
- 创建一个名为 `.env.development` 或者 `.env.local` 的文件(取决于你的项目结构),用于存储环境变量。在这个文件中,你可以定义两个代理地址,例如:
```
API_URL_LOCAL='http://localhost:8080'
API_URL_PRODUCTION='https://api.example.com'
```
然后在你的应用中通过 `process.env.API_URL_<环境>` 来获取。
2. **`request.ts` 文件(如果使用axios)**:
- 在项目的 `src/api/request.ts` 或类似目录下创建一个请求模块,导入环境变量并设置axios的baseURL:
```typescript
import axios from 'axios';
import { env } from '@vitejs/app';
const apiBaseUrl = process.env.NODE_ENV === 'development' ? env('API_URL_LOCAL') : env('API_URL_PRODUCTION');
const instance = axios.create({
baseURL: apiBaseUrl,
// 其他axios配置项...
});
export default instance;
```
3. **`vite.config.ts` 文件**:
- 在 `vite.config.ts` 中,添加路由重定向,这里使用的是Vite自带的基于路径映射的代理功能:
```typescript
import { defineConfig } from 'vite';
import path from 'path';
export default defineConfig({
server: {
port: 3000,
proxy: [
{
prefix: '/local', // 本地接口前缀
target: process.env.API_URL_LOCAL, // 当前运行模式对应的接口地址
changeOrigin: true,
rewrite: (url) => url.replace(/^\/local/, ''),
},
{
prefix: '/', // 生产环境接口前缀
target: process.env.API_URL_PRODUCTION, // 生产环境接口地址
changeOrigin: true,
rewrite: (url) => url,
},
],
},
// ...
});
```
这样当访问 `/local/*` 和 `/` 前缀的URL时,将分别转发到相应的地址。
记得在部署时,根据实际生产环境替换`.env.production`文件中的`API_URL_PRODUCTION`。
阅读全文
相关推荐




















