Reactjs 如何在DevOps中设置依赖于其发布阶段的变量?

Reactjs 如何在DevOps中设置依赖于其发布阶段的变量?,reactjs,typescript,azure,azure-devops,devops,Reactjs,Typescript,Azure,Azure Devops,Devops,是否有一种方法可以根据React应用程序在Azure DevOps发布管道中的当前阶段轻松更改其变量?例如,假设我设置了三个阶段(dev/QA/production),我希望在应用程序的auth配置中为每个环境交换一个客户端ID。如何“检测”当前正在使用的环境以选择适当的ID?我更愿意只需要运行一个构建任务,并为每个管道阶段使用一个工件,而不是在每个阶段重建(如果可能)。如果您不想为每个阶段单独绑定,那么您需要一个服务器来提供您希望提供给客户端的值 这可以通过在服务器端呈现HTML来实现。下面是

是否有一种方法可以根据React应用程序在Azure DevOps发布管道中的当前阶段轻松更改其变量?例如,假设我设置了三个阶段(dev/QA/production),我希望在应用程序的auth配置中为每个环境交换一个客户端ID。如何“检测”当前正在使用的环境以选择适当的ID?我更愿意只需要运行一个构建任务,并为每个管道阶段使用一个工件,而不是在每个阶段重建(如果可能)。

如果您不想为每个阶段单独绑定,那么您需要一个服务器来提供您希望提供给客户端的值

这可以通过在服务器端呈现HTML来实现。下面是一个简短的示例模板:

<script>
  window.valueToExpose = <%= JSON.stringify(value) %>;
</script>

在React应用程序中,您可以访问
窗口。value to expose

首先,我希望您的应用程序根据环境部署到不同的主机/c名称

如果您不想在部署/构建代码时提供某种环境标识符,那么检查URL可能是一种方法。这样做的缺点是,您现在正在将URL模式硬编码到脚本中,并将其映射到环境中。你决定取舍

其次,我同意Lucas的回答,即您需要一个外部源来进行配置,以便在运行时从中提取


如果你生活在M$生态系统中,我不确定有什么可用的,但我可以从其他堆栈中推荐,或者哪些可以外部化、服务和提供额外的配置管理功能

你使用网页包还是其他的?
<script>
  window.valueToExpose = "Hello World";
</script>