有没有办法将环境变量添加到npm包并在azure构建管道中修改它?

有没有办法将环境变量添加到npm包并在azure构建管道中修改它?,npm,azure-devops,npm-package,Npm,Azure Devops,Npm Package,我创建了一个npm包,可以访问后端运行的几个API。访问这些api的URL在包中是硬编码的。大多数情况下,我们需要更改URL以指向另一个api(指向不同数据库的不同版本)。最后我们编辑代码、更新URL并重新发布npm包 我们的npm包代码位于私有git回购中。我们正在创建一个管道,它将在签入时自动发布包我们希望添加URL的as构建变量,这些变量将在构建管道期间获取,并在发布之前作为npm包的一部分添加。 有什么方法可以做到这一点吗?如果是,azure管道流程和实际代码中需要做哪些更改?正如您所说

我创建了一个npm包,可以访问后端运行的几个API。访问这些api的URL在包中是硬编码的。大多数情况下,我们需要更改URL以指向另一个api(指向不同数据库的不同版本)。最后我们编辑代码、更新URL并重新发布npm包

我们的npm包代码位于私有git回购中。我们正在创建一个管道,它将在签入时自动发布包我们希望添加URL的as构建变量,这些变量将在构建管道期间获取,并在发布之前作为npm包的一部分添加。


有什么方法可以做到这一点吗?如果是,azure管道流程和实际代码中需要做哪些更改?

正如您所说,您将npm包代码存储在Repos中。在这里,我认为这个任务可以帮助您实现将URL从变量替换到代码中

要使用该任务:

  • (1)。首先需要将URL存储到变量中。例如,创建一个变量名A,然后输入值
  • (2)。然后按照任务语法(
    {****}
    )修改代码

    转到要用变量替换的脚本 价值将其修改为
    {A}
    。(此处请确保
    ***
    值 与之前配置的相关变量名称相同。)

    因此,相应的位置可以由变量替换 在生成过程中自动生成值

关于详细的步骤,您可以参考我的上一篇文章,它也有类似的要求



您需要注意的另一件事是(3)。在包发布步骤之前添加此替换令牌任务。签入代码并触发构建后,它将首先通过将变量值替换为脚本来覆盖源代码。然后,下一个发布步骤可以打包并发布带有这些更改代码的完整源文件。

您已经准备好了什么?什么不起作用?这个问题太广泛了,无法给出一个想法,当我们在azure上部署任何前端web应用程序时,我们将应用程序中使用的api url设置为azure devops中的环境变量。我们可以更改api url并重新部署它。我们想对npm包做一些类似的事情——通过azure环境变量更改npm包中使用的api URL。我们想检查一下,尝试我在回答中提供的方法是否有好消息?如果我的回答有帮助,我会感谢你,因为这也会帮助社区中的其他人。如果对此还有任何其他问题,请随时在下面发表评论。