当前位置: 首页 > 知识库问答 >
问题:

vue3 - vite项目import.meta.env能获取非VITE开发的环境变量?

长孙深
2024-03-04

背景:

在vue3 + vite项目中,通过import.meata.env.VITE_XX的方法可以访问到VITE_XX变量,但是打印import.meata.env,发现打印内容还有BASE_URL等变量,并可以通过import.meata.env.BASE_URL的方式获取,但是.env.development文件是没有BASE_URL变量的。

尝试1:
vscdoe全局搜索BASE_URL,没有查询到。

共有2个答案

魏健柏
2024-03-04

这个base是vite.config.js里面的base配置项,默认是'/'
vite配置

陈飞语
2024-03-04

在 Vite 项目中,import.meta.env 主要用于访问由 Vite 注入的环境变量。默认情况下,Vite 提供了一些预定义的环境变量,如 BASE_URLPRODDEV 等,这些变量在开发环境和生产环境中都是可用的。

对于 VITE_ 前缀的环境变量,例如 VITE_XX,这些是由用户自定义的,并且只有在 Vite 开发环境中可用。当构建应用程序以进行生产部署时,这些以 VITE_ 开头的环境变量将不会包含在最终的构建产物中。

对于你提到的 BASE_URL,这是一个特殊的环境变量,它在 Vue CLI 和 Vite 项目中都被预定义。BASE_URL 主要用于指定应用程序的基础 URL,它通常被用于处理 API 请求的 URL 前缀。在开发环境中,它的值通常默认为 /,但在生产环境中,你可以通过设置环境变量来覆盖这个值。

至于为什么你在 .env.development 文件中没有找到 BASE_URL 变量,这是因为 BASE_URL 并不是通过 .env 文件来设置的。在 Vue CLI 和 Vite 项目中,BASE_URL 是一个预定义的环境变量,其值可以在项目的配置文件(如 vue.config.jsvite.config.js)中进行设置,或者直接在构建命令中通过 --base-url 参数来指定。

因此,答案是:import.meta.env 确实可以获取到非 VITE 开发的环境变量,如 BASE_URL。这个变量是 Vite 和 Vue CLI 预定义的,你可以在项目的配置文件中或构建命令中设置其值。而 VITE_ 前缀的环境变量则是由用户自定义的,并且只在 Vite 开发环境中可用。

 类似资料: