有没有办法为VSTS CI npm任务提供环境变量?

Ree*_*ong 5 node.js npm azure-devops azure-pipelines

基本上,我需要一种方法为我的应用程序注入环境变量,因为我不想将.env文件检入我的仓库.我希望运行类似的东西API_URL=api.example.com npm run build,但看起来你不能在任务命令之前添加前缀.

有没有办法做到这一点,还是有更好的方法为Azure中托管的节点应用程序创建环境变量?

teh*_*one 18

您可以将一些构建变量添加到构建定义中,然后在构建步骤中引用它们.例如,为您API_URL添加具有相同名称和值的构建变量.如果您因任何原因(密码等)需要变量保密,只需单击值字段旁边的锁定图标即可.

在此输入图像描述

然后在构建中添加一个新的cmd任务并将其移动到顶部以设置环境变量.你引用构建变量的方式是这样的......

set API_URL=$(Build.API_URL)
Run Code Online (Sandbox Code Playgroud)

在UI中它将如下所示:

在此输入图像描述

我在测试版本中添加了两个cmd任务,以表明它正在运行.第一个用于设置环境变量,然后我使用第二个转储所有环境变量,以便我可以看到它们.您可以在构建日志中看到它有效.

在此输入图像描述

如果要使用命令行之外的其他内容引用构建变量,可以在此处找到引用构建变量的不同方法的示例.还有一些如何在该页面上使用秘密变量的示例.

编辑:

由于您对节点应用程序中无法使用它有一些担忧,我在控制台中快速测试了它,以确保它一定能正常工作.

在此输入图像描述

  • 实际上,您无需通过命令行重新设置它们.如果它们被设置为构建变量(而不是秘密),那么它们应该出现在`process.env`中 (2认同)