【问题标题】:How to reuse or expand .env variable in React如何在 React 中重用或扩展 .env 变量
【发布时间】:2021-05-20 06:15:36
【问题描述】:

我有 reactJS APP(CRA) 并为属性添加了 .env 文件。但每次我需要在多个地方输入相同的值。那么有什么办法可以重复使用呢。

我的.env:

REACT_APP_SERVER_API=https://api.mysite.com
REACT_APP_AUTH_API=https://api.mysite.com/auth/login
...

但想要类似的东西

REACT_APP_AUTH_API=${REACT_APP_SERVER_API}/auth/login

我尝试了不同的方式,例如:

REACT_APP_AUTH_API=${REACT_APP_SERVER_API}
REACT_APP_AUTH_API={REACT_APP_SERVER_API}
REACT_APP_AUTH_API=REACT_APP_SERVER_API
REACT_APP_AUTH_API=`${REACT_APP_SERVER_API}`
REACT_APP_AUTH_API=`{REACT_APP_SERVER_API}`

以上内容均未评估,因此我不得不多次输入相同的内容,我有大量具有父子 uri 的 api。

【问题讨论】:

  • 如果你的 url 架构没有改变,而只是主机,你当然只需要在 env 中存储 REACT_APP_SERVER_API。然后,您可以创建一个包含 REACT_APP_SERVER_API 的配置对象,例如 const urls = {loginAPI:`${REACT_APP_SERVER_API}/auth/login`}

标签: reactjs react-native react-redux react-hooks environment-variables


【解决方案1】:

这在 create-react-app 文档here 中有记录。

扩展当前 .env 文件的本地变量:

DOMAIN=www.example.com
REACT_APP_FOO=$DOMAIN/foo
REACT_APP_BAR=$DOMAIN/bar

或者,您可以在 javascript 文件中处理此问题。

const API_BASE_URL = process.env.REACT_APP_SERVER_API;

const LOGIN_URL = `${API_BASE_URL}/auth/login`;
const GET_DATA = `${API_BASE_URL}/data`;

【讨论】:

  • 上面没有正确评估,这是在 .env 中:DOMAIN=www.example.com REACT_APP_FOO=$DOMAIN/foo REACT_APP_BAR=$DOMAIN/bar 但它显示为:REACT_APP_FOO: "$DOMAIN /foo" REACT_APP_BAR: "$DOMAIN/bar"
  • 我已经在我的本地系统上进行了测试,它按预期工作。也许尝试将react-scripts 版本更新到最新版本。还可以尝试在本地创建一个新的 CRA 项目并测试相同的东西。
  • 这是使用的版本:--- "react": "^16.13.1", "env-cmd": "^10.1.0",
  • 我刚改成 dotenv 而不是 env-cmd 并且它有效....谢谢
猜你喜欢
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多