我有一个我正在处理的应用程序,包括使用CRA编写的前端 - 以及用Java编写的后端。我们希望支持在整个流程中的多个环境中部署它,即:
我遇到的问题是 - 在无数不同的系统中,前端知道后端位置的最佳方法是什么?我也希望前端可以部署到CDN上,所以如果它可以是具有最小复杂性的静态文件,那将是首选。
到目前为止,我已经完成了前两个工作 - 他们通过使用.env
文件并使用硬编码的主机名进行调用。
一旦我进入第三个及以后 - 这是我的下一个工作 - 这就会失败,因为在每个案例中都有一个不同的主机名要调用,但具有相同的输出npm run build
开展工作。
我看过以下建议:
REACT_APP_BACKEND=http://localhost:8080/backend npm run build
。这样可行,但是进入QA,PreProd和Prod的代码实际上是不同的,可能会使测试无效。index.html
加载的Javascript文件。这再次意味着不同的测试环境在技术上是不同的代码。那么 - 管理这个的最佳方法是什么?
干杯