vue3 + vite踩坑记之—— 无法读取全局变量,如何配置全局变量

指定开发模式

一般构建好的启动命令只有vite,默认启动的是开发环境,也就是develop,保险起见,建议后面配置上开发模式,如图

在这里插入图片描述
注意:mode后面的变量是什么,定义的全局变量文件要与之相同,如上图所示我定义的是develop,那我的文件名就是.env.develop
在这里插入图片描述

然后我就美滋滋地定义变量了,但是我定义的YD_BASE_URL却怎么都获取不到,这是为什么呢?
在这里插入图片描述

在这里插入图片描述

自定义全局环境变量

vite默认对外暴露出的变量只能是以VITE开头,所以只能定义VITE_API之类的,像TEST_API这样就是暴露不出去的,所以我们要在vite.config.js中配置可以自定义的前缀。

在这里插入图片描述
然后,就可以访问到啦。
在这里插入图片描述

Vue3 + Vite + TypeScript的项目中,如果你需要代理两个不同的接口地址,你需要分别配置`.env.development`环境变量文件,`request.ts`的中间件以及`vite.config.ts`的代理规则。以下是相应的步骤: **1. .env.development文件配置:** 在这个文件中,你可以设置环境变量来替代硬编码的URL。例如,对于两个接口地址,可以这样配置: ``` # .env.development API_BASE_URL_1=https://api.example.com/v1 API_BASE_URL_2=https://api2.example.com/v2 ``` 得将`https://api.example.com/v1` 和 `https://api2.example.com/v2`替换为你实际的接口地址。 **2. request.ts文件(若使用axios等库):** 创建或更新`request.ts`,添加一个通用的请求拦截器,用于获取环境变量: ```typescript import axios from 'axios'; import { env } from '@vitejs/app'; const instance = axios.create({ baseURL: process.env.API_BASE_URL_1 || 'http://localhost:8080', // 使用默认值或从环境变量读取 }); instance.interceptors.request.use( async (config) => { if (config.url.includes('//')) { // 如果url未包含前缀,尝试添加第一个环境变量的URL config.baseURL = process.env.API_BASE_URL_1; } return config; }, (error) => Promise.reject(error) ); // 对第二个接口地址的处理类似,如果有单独的处理,可以在else块中添加 if (config.url.includes('/v2')) { config.baseURL = process.env.API_BASE_URL_2; } export default instance; ``` **3. vite.config.ts文件的代理配置:** Vite本身不需要手动配置代理,因为它内置了自动代理功能。但在某些情况下,如果使用的是特定插件(如vite-plugin-proxy),则需添加以下内容: ```typescript import { defineConfig } from 'vite'; import proxy from 'vite-plugin-proxy'; export default defineConfig({ server: { port: 3000, }, plugins: [ proxy({ '/api/*': { target: process.env.API_BASE_URL_1, // 第一个接口的代理 changeOrigin: true, secure: false, }, '/api2/*': { target: process.env.API_BASE_URL_2, // 第二个接口的代理 changeOrigin: true, secure: false, }, }), ], }); ``` 这样,当访问 `/api` 前缀的接口时,会转发到第一个环境变量指定的地址;而访问 `/api2` 前缀的接口则转发到第二个地址。 **相关问题--:** 1. Vue3项目中如何全局使用request.ts? 2. 需要手动配置proxy吗?为什么? 3. 如何在开发环境中查看代理是否生效?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值