我有一个任务,需要将 aspnet core React 应用程序部署到两个不同的环境中:开发环境和生产环境。每个环境都应单独配置。
我使用 Azure DevOps 进行 CI/CD。
AspNet 项目包含以下用于构建应用程序的命令:
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build" />
我使用adal进行授权,所以必须传递一些不同于Dev和Prod的秘密变量。
const adalConfig = {
tenant: process.env.REACT_APP_TENANT,
clientId: process.env.REACT_APP_CLIENT_ID,
redirectUri: process.env.REACT_APP_REDIRECT_URI,
在Azure DevOps中,我使用以下命令设置参数:
echo ##vso[task.setvariable variable=REACT_APP_TENANT;isOutput=true]c00000-00ce-000-0f00-0000000004000
在Azure DevOps中,我有用于ASP.NET Core构建应用程序的标准命令:
- .NET Core安装程序
- 还原
- 运行命令(用于设置环境变量)
- 构建
- 发布
问题:
- 环境变量未设置。
- 我甚至不知道如何为生产环境构建另一个部署文件,而非开发环境。
您是否曾经有过将核心React应用程序部署到两个不同环境的任务?或者请给出建议是否需要更改部署策略。
我找到的唯一解决方案是使用.env文件,但我必须将此文件提交到Git中以便从主分支部署。 我仍然不知道如何为开发和生产使用不同的文件。