vite环境变量 env

Vite 在一个特殊的 import.meta.env 对象上暴露环境变量。这里有一些普遍适用的内建变量:

  • import.meta.env.MODE: string 应用运行基于的 模式。

  • import.meta.env.BASE_URL: string 应用正被部署在的 base URL。它由 base 配置项 决定。

  • import.meta.env.PROD: boolean 应用是否运行在生产环境

  • import.meta.env.DEV: boolean 应用是否运行在开发环境 (永远与 import.meta.env.PROD 相反)

#生产环境替换

在生产环境中,这些环境变量会在构建时被静态替换,因此请在引用它们时使用完全静态的字符串。动态的 key 将无法生效。例如,动态 key 取值 import.meta.env[key] 是无效的。

它还将替换出现在 JavaScript 和 Vue 模板中的字符串。这应该是比较罕见的情况,但它可能是不小心为之。有一些方法可以避免这个问题:

  • 对于 JavaScript 字符串,你可以在相应位置上使用一个 unicode 序列值,例如: 'import.meta\u200b.env.MODE'

  • 对于 Vue 模板或其他编译到 JavaScript 字符串的 HTML,你可以使用 标签,例如:import.meta.env.MODE

.env 文件

Vite 使用 dotenv 在你的项目根目录下从以下文件加载额外的环境变量:

.env                # 所有情况下都会加载
.env.local          # 所有情况下都会加载,但会被 git 忽略
.env.[mode]         # 只在指定模式下加载
.env.[mode].local   # 只在指定模式下加载,但会被 git 忽略

为了防止意外地将一些环境变量泄漏到客户端,只有以 VITE_ 为前缀的变量才会暴露给经过 vite 处理的代码。例如下面这个文件中:

DB_PASSWORD=foobar
VITE_SOME_KEY=123

只有 VITE_SOME_KEY 会被暴露为 import.meta.env.VITE_SOME_KEY 提供给客户端源码,而 DB_PASSWORD 则不会。

你可能感兴趣的:(vite环境变量 env)