在 vite 项目中,通过 `import.meta.env` 对象访问 `.env.production` 中的变量。vite 会在构建时根据当前环境自动加载对应的环境变量文件,并将以 `vite_` 为前缀的变量注入到客户端代码中。

Vite 如何区分并加载 .env.production
Vite 使用 `NODE_ENV` 和 `MODE` 来决定加载哪个配置文件。当执行 `vite build --mode production` 或默认生产构建时,Vite 会优先加载 `.env.production` 文件。只有键名以 `VITE_` 开头的变量才会被暴露给前端代码,其他变量仅在后端或构建脚本中可用。

// .env.production VITE_API_URL=https://api.example.com SECRET_KEY=hidden_only_for_build
在上述配置中,`VITE_API_URL` 可以在前端代码中直接读取,而 `SECRET_KEY` 不会出现在浏览器环境中。这种机制确保了敏感信息的安全隔离。
如何在代码中安全地读取这些变量
在 JavaScript 模块中,通过 `import.meta.env.VITE_VARIABLE_NAME` 语法访问变量。如果变量未定义,该属性将返回 `undefined`。建议在开发阶段提供默认值或使用条件判断来避免运行时错误。

const apiUrl = import.meta.env.VITE_API_URL || 'http://localhost:3000'; console.log(apiUrl); // 输出实际配置的 URL 或默认值
这种方式允许你在不同环境下动态切换配置,例如在生产环境中指向正式服务器,而在本地开发时指向测试服务器。同时,由于 Vite 在构建时会替换这些占位符,最终打包的代码中不会包含未定义的变量引用,从而保证代码的健壮性。
当 .env.production 中缺少某个变量时会发生什么
如果 `.env.production` 文件中没有定义某个以 `VITE_` 开头的变量,`import.meta.env` 中对应的属性将为 `undefined`。这可能导致依赖该变量的逻辑出错,因此建议始终提供默认值或在构建失败时给出明确提示。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











