React JS - 从外部 属性 文件读取环境配置

React JS - Reading environment configurations from external property file

问题: 我是 React JS 的新手,正在寻找从外部 属性 文件读取环境配置的选项。这个问题对于我的一位客户来说更为具体,他希望有一个选项来动态更改环境文件。例如。只要有变化,就动态地改变 hostname/port 。构建过程不属于我的客户。我创建了一个缩小的最终包,我的客户将其部署在 tomcat/web server.

尝试过的解决方案: 通过一些读数,我已经为不同的环境配置了 .env 文件,并且能够成功地从这些文件中读取配置。但是,这些更多的是构建过程环境文件。而且,我正在尝试找到一种在创建包后从外部源读取配置的方法。

Possible solutions : Here is one possible approach I can think of -

使用 "properties-reader" 等库读取外部 属性 文件。我将提供 属性 文件作为我的发布包(即构建文件夹)的一部分。我的客户可以在需要时更改此 属性 文件。

请建议这是正确的方法还是有更好的解决方案?

我建议使用 Firebase Realtime DB 之类的东西。我有类似的要求,将 App 构建指向我公司的生产或开发服务器 API。为此,我们使用加载 Firebase 配置并从那里 UI 用于获取主机服务器端点。

优点:

  • 这样可以避免每次都部署构建文件夹。
  • 这是实时的,不易出错。
  • FirebaseDB 对于这样的小东西是免费的。

第二个选项是创建两个环境文件,我看到你已经完成了。

一个对我有用的解决方案!!

1) 在 React 项目的 public 文件夹中创建一个 "config.js" 文件。样本内容 "config.js" 文件 -

window.env = {
  API_DOMAIN_ADDR: "http://localhost:8080"
};

2) 参考 index.html 中的 "config.js" 文件。 index.html 的代码将是 -

<body>
    <div id="root"></div>
    <script src="%PUBLIC_URL%/config.js"></script>
  </body>

3) 现在,config.js 文件的内容将可供 React 代码访问。检索 config.js 变量值的示例代码 -

window.env.API_DOMAIN_ADDR

在需要访问变量值的地方添加这段代码。我在正在调用 ajax 的服务 class 中添加了这个。