gpt4 book ai didi

typescript - 在 VS Code 和 TypeScript 中调试 Azure DevOps 自定义任务时如何设置输入变量

转载 作者:搜寻专家 更新时间:2023-10-30 20:59:38 26 4
gpt4 key购买 nike

背景:我正在为 Azure DevOps 构建自定义构建任务。

  • 这个任务需要一个输入参数,param1
  • 它是用 VS Code (v1.30.1) 和 TypeScript (tsc --version state: v3.2.2) 编写的

问题当我尝试调试我的任务时,我无法为 param1 传递变量值。击中断点,以便该部分正常工作。

部分代码:索引.ts

import tl = require('azure-pipelines-task-lib/task');

async function run() {
try {
let param1: string = tl.getInput('param1', true);
if (param1 === null || param1 === undefined) {
console.log('Should not be here...');
}
}
catch (err) {
tl.setResult(tl.TaskResult.Failed, err.message);
}
}
run();

当我使用 tsc;node index.js 从控制台运行它时,这工作正常但是当使用 VS 代码调试器运行时,我似乎永远无法将值传递给 param1,因此它在内部崩溃“getInput”方法。

我的 launch.json

{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "TaskName",
"program": "${workspaceFolder}/Extensions\\BuildTasks\\TaskName\\index.ts",
"outFiles": [
"${workspaceFolder}/Extensions\\BuildTasks\\TaskName\\**\\*.js"
]
}
]}

我也试过添加

"env": {
"param1": "thisBeString"
}

在输出文件下,但没有成功。

无奈之下我也尝试过使用

"args": {
"--param1": "thisBeString"
}

预期结果(失败...)

我也在我的 tasks.json 中使用了输入但没有成功(according to this 所以问答)

所以问题是在 VS Code 中调试 Azure DevOps 扩展时如何传递变量值。

最佳答案

作为环境变量传递的 Task 输入参数的名称必须以 INPUT_ 为前缀。

在您的示例中,您将像这样在启动环境中设置参数 param1:

launch.json

"env": {
"INPUT_param1": "thisBeString"
}

您无需在代码中重命名 param1,因为前缀会自动添加到对 getInput() 的调用中。

在运行时设置任务环境时,Azure DevOps 管道也会添加前缀。这样做有助于降低与其他环境变量发生冲突的风险。

请在此处查看 Azure Pipelines 任务 SDK 源引用:
https://github.com/microsoft/azure-pipelines-task-lib/blob/master/node/task.ts#L219

关于typescript - 在 VS Code 和 TypeScript 中调试 Azure DevOps 自定义任务时如何设置输入变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54093047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com