For*_*ank 31 javascript environment-variables reactjs vite
我\xc2\xb4已经浏览了 vite、react.js 和开发博客的所有文档,但我没有让它工作
\n我有一个 .env 文件,其中包含以下内容
\nVITE_API_KEY = XXX \nRun Code Online (Sandbox Code Playgroud)\n在我的 firebase.js 文件中,我加载它的方式如下:
\nconst firebaseConfig = {\n apiKey: import.meta.env.API_KEY,\n .....\n .....\n}\n// Initialize Firebase\nconst app = initializeApp(firebaseConfig);\nRun Code Online (Sandbox Code Playgroud)\n但它显示为null,我重新启动了开发服务器,重新安装了node_modules(以防万一)将var前缀更改为REACT_APP_XX,尝试使用process.env.XX全局对象,基本上经历了所有不同的方式从.env读取var反应中的文件
\nI\xc2\xb4ve 也尝试从组件中阻塞它,但它具有相同的结果
\n有什么建议/方法来解决这个问题?
\nton*_*y19 39
代码中使用的环境变量名称必须与环境变量中设置的名称相匹配.env:
// .env\nVITE_API_KEY=abcd1234\n \nRun Code Online (Sandbox Code Playgroud)\n// firebase.js\nconst firebaseConfig = { \n apiKey: import.meta.env.VITE_API_KEY,\n \xe2\x8b\xae\n}\nRun Code Online (Sandbox Code Playgroud)\n\n相关文档可以在Vite Env变量中找到文档
\nFor*_*ank 35
终于解决了这个问题,问题是:
import.meta.env.VITE_XX
Run Code Online (Sandbox Code Playgroud)
这个环境变量在生产过程中被静态替换,而不是开发过程中,至少在我的例子中,我通过检查模式解决了这个问题
if(import.meta.env.MODE === "development"){
//use dev keys
}
else{
//use .env variables
}
Run Code Online (Sandbox Code Playgroud)
当处于生产模式时
import.meta.env.VITE_XX
Run Code Online (Sandbox Code Playgroud)
变量将正确加载,因此您可以将它们添加为部署服务中的环境变量,它将正常工作。我用 vercel 测试过它并且有效
| 归档时间: |
|
| 查看次数: |
57883 次 |
| 最近记录: |