Stu*_*udy 5 frontend environment-variables reactjs react-tsx
我的应用程序在react.ts中包含.env文件来存储带有机密数据的变量。但是使用的时候process.env.REACT_APP_CLIENT_ID控制台出现错误。
未捕获的引用错误:进程未定义
怎么解决?请帮帮我。
.env 文件
REACT_APP_CLIENT_ID = ed75ba30-1810
authConfig.tsx 文件
export const msalConfig: Configuration = {
auth: {
clientId: process.env.REACT_APP_CLIENT_ID,
authority: "https://login.microsoftonline.com,
},
Run Code Online (Sandbox Code Playgroud)
小智 9
Vite 不像 Node.js 那样提供内置的流程变量。Vite 专为前端开发而设计,不包含类似 Node.js 的全局对象。
要访问 Vite 中的环境变量,可以使用import.meta.env对象。该对象允许您访问 Vite 项目中定义的环境变量。
在您的示例中,重命名 env 文件中的变量,如下所示:
来自:REACT_APP_CLIENT_ID = ed75ba30-1810
至:VITE_REACT_APP_CLIENT_ID = ed75ba30-1810
使用 Vite 时,请确保在环境变量中添加 VITE_ 前缀,因为它会自动公开以该前缀开头的变量。
您的 authConfig 文件应该是:
export const msalConfig: Configuration = {
auth: {
clientId: import.meta.env.VITE_REACT_APP_CLIENT_ID,
authority: "https://login.microsoftonline.com,
},
Run Code Online (Sandbox Code Playgroud)
基本上用 import.meta.env 替换 process.env
效果非常好。
小智 6
我正在使用 vite React,在搜索我已经完成的所有内容后,我得到了同样的错误,但流程仍然没有定义。
所以我在 vite.config.js 文件中定义了它
定义:{'process.env':{}}
| 归档时间: |
|
| 查看次数: |
21882 次 |
| 最近记录: |