为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

ABOUTYOU 2021-12-23 14:46:56
问题:我是新手React JS,正在寻找从外部属性文件读取环境配置的选项。这个问题对于我的一位客户来说更具体,他希望有一个选项来动态更改环境文件。例如,hostname/port只要有变化就动态更改。构建过程不属于我的客户。我创建了一个缩小的最终包,我的客户将其部署在tomcat/web server.尝试的解决方案:通过一些读数,我已经为不同的环境配置了 .env 文件,并且能够成功地从这些文件中读取配置。但是,这些更多的是构建过程环境文件。而且,我试图找到一种方法,在我的包创建后从外部源读取配置。可能的解决方案:这是我能想到的一种可能的方法-使用诸如“properties-reader”之类的库读取外部属性文件。我将提供属性文件作为我的发布包(即构建文件夹)的一部分。我的客户可以在需要时更改此属性文件。请建议这是正确的方法还是有更好的解决方案?
查看完整描述

2 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

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


1)在反应项目的公共文件夹中创建一个“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 文件的内容。检索 config.js 变量值的示例代码 -


window.env.API_DOMAIN_ADDR

在需要访问变量值的地方添加此代码。我在我的服务类中添加了这个,它正在进行 ajax 调用。


查看完整回答
反对 回复 2021-12-23
?
白衣非少年

TA贡献1155条经验 获得超0个赞

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

好处:

  • 这使您无需每次都部署构建文件夹。

  • 这是实时的,不易出错。

  • FirebaseDB 对于这样的小东西是免费的。

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


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 277 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信