【问题标题】:Is there any way to add environment variables to a npm package and modify it in azure build pipeline?有没有办法将环境变量添加到 npm 包并在 azure build pipeline 中修改它?
【发布时间】:2019-11-06 16:12:51
【问题描述】:

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

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

有什么办法吗?如果是,则需要在 azure 管道流程和实际代码中进行哪些更改?

【问题讨论】:

  • 你已经有什么了?什么不起作用?这个问题太笼统了
  • 举个例子,当我们在 azure 上部署任何前端 Web 应用程序时,我们将应用程序中使用的 api-url 设置为 azure devops 中的环境变量。我们可以更改 api-url 并重新部署它。我们想对 npm 包做类似的事情——通过 azure 环境变量更改 npm 包中使用的 api-urls
  • 只是想看看有没有关于尝试我在回答中提供的方法的好消息?如果我的回复有帮助,感谢marking it as an answer,这也将帮助社区中的其他人。如果对此仍有任何其他疑问,请随时在下面发表评论。

标签: npm azure-devops npm-package


【解决方案1】:

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

使用该任务:

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

    转到您希望将其替换为变量的脚本 价值。修改为#{A}#。 (这里请确保**** 值 与你之前配置的相关变量名称相同。)

    因此可以用变量替换对应的位置 在构建过程中自动设置值。

详细步骤可以参考我之前有类似需求的answer。


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

【讨论】:

    猜你喜欢
    • 2020-02-13
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2010-09-17
    • 2016-01-05
    相关资源
    最近更新 更多