我正在使用create-react-app
从头开始构建React SPA应用程序,并为我的SPA的API服务器设置uri地址。根据官方文档,建议的方法是为此类需求创建环境.env
文件。我正在使用持续交付作为开发工作流程的一部分。部署后,React SPA应用程序进入一个Docker容器,API进入另一个。这些容器部署在单独的服务器中,我不确切知道API的uri,因此无法为每个部署创建单独的.env
文件。是否有任何“正确方法”为SPA应用程序提供动态配置,以便我可以轻松更改环境参数
API URI示例
// api.config.js
export const uriToApi1 = process.env.REACT_APP_API1_URI;
export const uriToApi2 = process.env.REACT_APP_API2_URI;
// in App.js
import { uriToApi1, uriToApi2 } from '../components/config/api.config.js';
/* More code */
<DataForm apiDataUri={`${uriToApi1}/BasicService/GetData`} />
/* More code */
<DataForm apiDataUri={`${uriToApi2}/ComplexService/UpdateData`} />
答案 0 :(得分:1)
让我们假设您在某个dist
文件夹中构建前端代码,该文件夹将由Docker打包在映像中。您需要在项目中创建config
文件夹,该文件夹也将添加到dist
文件夹中(很明显,将打包在Docker映像中)。在此文件夹中,您将存储一些配置文件以及一些服务器特定的数据。而且,您需要在React应用程序启动时加载这些文件。
流程如下:
./config/api-config.json
)您需要在Docker配置文件中设置Docker Volumes
,并将Docker容器中的config
文件夹与服务器上的一些config
文件夹连接。然后,您将能够用服务器上的文件替换docker容器中的配置文件。这将帮助您覆盖每台服务器上的配置。