用 .env 反应环境变量

Posted

技术标签:

【中文标题】用 .env 反应环境变量【英文标题】:React env variables with .env 【发布时间】:2017-11-07 10:16:17 【问题描述】:

我正在尝试关注有关从 react-create-app 添加环境变量的文档,但没有成功:

https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-custom-environment-variables

在文档的根目录内我有一个“.env”文件(默认 .env 属性) .env 文件只包含一个变量'REACT_APP_API_HOST=http://localhost:8080' 尝试访问我的应用程序中的 process.env(使用 create react app 创建)给我未定义

这是我尝试访问 process.env 的 app.js,但没有成功。

我无法访问代码中的 process.env。有没有关于如何做到这一点的工作示例?

【问题讨论】:

您的路径中是否定义了 NODE_ENV? 否,但 .env 已定义为默认值。 啊奇怪!您是否可以通过将 process.env 导出到 bash 配置文件中来访问任何其他变量? 你能分享你的代码吗? 添加新的.env 变量后,确保重启yarn。此外,您的自定义 .env 变量应以 REACT_APP_ 开头 【参考方案1】:

您可以在 root 上使用 .env 文件。

start: react-scripts start - 使用 .env.development build_staging: "set REACT_APP_ENV=staging & react-scripts build" - 使用 .env.staging build: "react-scripts build" - 使用 .env.production

【讨论】:

【参考方案2】:

在您的 package.json 中,您最终必须在启动脚本中添加 NODE_ENV=development。例如。 NODE_ENV=development && node scripts/start.js 用于弹出的 create-react-appNODE_ENV=development react-scripts start 用于未弹出的。

编辑:显然NODE_ENV=development 不是必需的,因为在您运行startbuild 脚​​本时它已经被硬编码。根据文档,您的自定义环境变量应该具有以下格式REACT_APP*,就像您已经完成的那样。

sn-p 会很有帮助。

【讨论】:

问题是我试图在调试模式下通过观察变量来读取它。由于某种原因,它不起作用。只需通过控制台记录它,它就可以工作。

以上是关于用 .env 反应环境变量的主要内容,如果未能解决你的问题,请参考以下文章

Node环境变量Process.env

使用 EAS 反应原生 Expo 环境变量

vite的环境变量 import.meta.env

.env前端环境变量配置

如何持久化docker中的环境变量

Vue .env文件配置全局变量