使用 vite 在 React 应用程序中加载环境变量

loading env variables in react app using vite

我已经阅读了 vite、react.js 和开发博客中的所有文档,但我无法正常工作

我有一个 .env 文件,其中包含以下内容

VITE_API_KEY = XXX 

在我的 firebase.js 文件中,我正在加载它:

const firebaseConfig = {
  apiKey: import.meta.env.API_KEY,
   .....
   .....
}
// Initialize Firebase
const app = initializeApp(firebaseConfig);

但它显示为 null,我重新启动了开发服务器,重新安装了 node_modules(以防万一)将 var 前缀更改为 REACT_APP_XX,尝试使用 process.env.XX 全局对象,基本上通过所有不同的方式从 react

中的 .env 文件读取变量

我也试过从组件中堵塞它,但结果相同

任何suggestions/methods解决这个问题?

代码中使用的环境变量名称必须与 .env 文件中设置的名称相匹配:

// .env
VITE_API_KEY=abcd1234
   
// firebase.js
const firebaseConfig = {      
  apiKey: import.meta.env.VITE_API_KEY,
  ⋮
}

demo

终于解决了这个问题, 事情是这样的:

import.meta.env.VITE_XX

这个环境变量在生产过程中被静态替换,而不是在开发过程中,至少在我的情况下,我通过检查模式解决了这个问题

 if(import.meta.env.MODE === "development"){
//use dev keys
}
else{
//use .env variables
}

在生产模式下

import.meta.env.VITE_XX 

变量将正确加载,因此您可以将它们作为环境变量添加到部署服务中,它会正常工作。我已经用 vercel 测试过它并且有效