Disclaimer:我是一个react 迟钝的人,所以也许我想做的不是React Way
我正在编写一个React前端,它将由一些云Provider (如S3或谷歌存储等)静态部署.这个前端与云中某个地方的多个API服务器交互,可能在同一个Provider 中,也可能不是.此外,在开发UI或其一部分时,这些服务器的地址可能是本地或测试实例.
如何以灵活的方式将API服务器URL注入react应用程序,以便使用不同的地址在dev、staging或prod中部署?
SOLUTION:我最终使用了一系列建议的解决方案:
- 使用
.env.production
和.env.development
个文件(确切名称)存储变量REACT_APP_API_URI = 'host'
- 这是由create react应用程序的build scaffolding自动获取的,用户界面代码为
process.env.REACT_APP_API_URI
注意,这有点违背了12 Factor Apps的原则,例如,在版本控制中的文件中存储env变量,但它确实起到了作用.