Skip to content

环境变量与模式

内置变量

  • import.meta.env.MODE: {string} 应用运行的模式。
  • import.meta.env.BASE_URL: {string} 部署应用时的基本 URL。他由base 配置项决定。
  • import.meta.env.PROD: {boolean} 应用是否运行在生产环境(使用 NODE_ENV='production' 运行开发服务器或构建应用时使用 NODE_ENV='production' )。
  • import.meta.env.DEV: {boolean} 应用是否运行在开发环境 (永远与 import.meta.env.PROD 相反)。
  • import.meta.env.SSR: {boolean} 应用是否运行在 server 上。

环境变量

Vite 在一个特殊的 import.meta.env 对象上暴露环境变量,这些变量在构建时会被静态地替换掉。

不要和 ESM 弄混了!

  • import.meta 属于 ECMAScript 规范(浏览器、Node.js 原生支持)。
  • import.meta.env 是 Vite 额外扩展的。

.env 文件

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

定义变量

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

bash
KEY=123
NEW_KEY1=test$foo   # test
NEW_KEY2=test\$foo  # test$foo
NEW_KEY3=test$KEY   # test123

使用环境变量

js
console.log(import.meta.env.VITE_KEY)

模式

需要注意,NODE_ENVprocess.env.NODE_ENV)和 模式 是两个不同的概念。

基于 MIT 许可发布