根据 文档,可以在调试之前启动程序:
要在每个调试会话开始之前启动任务,请将
preLaunchTask
设置为 tasks.json 中指定的任务之一的 _名称_。
我没有看到“命名”任务的示例语法,但 架构文档 显示了一个名为 taskName
的属性。我尝试使用它将我的 launch.json preLaunchTasks
链接到任务,但它没有用。当我启动我的程序时,Visual Studio Code 报告了这个错误:
找不到独特的任务“启动核心”。确保任务存在并且它具有唯一的名称。
我的自定义“命名”任务看起来像这样:
{
"taskName": "launch-core",
"version": "0.1.0",
"command": "C:\\utils\\mystuff.exe",
// The command is a shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
}
然后,我尝试 根据此链接 将属性名称从 taskName
更改为 name
。那也没用。
Intellisense 没有给出如何命名任务的建议。
有人知道如何在 tasks.json 文件中唯一地命名任务吗?语法是什么?物业名称是什么?
最终,我想在我自己的 node.js 应用程序启动之前执行两个或三个 node.js 进程。例如,我想在我的应用程序启动到调试器之前启动以下三个应用程序:
sh -c 'cd ./manager/ && node manager.js'
sh -c 'cd ./adapter/ && node adapter.js'
sh -c 'cd ./core/ && node core.js'
如果我在 Windows 机器上工作,我的任务可能看起来像这样:
{
"taskName": "core-launch",
"version": "0.1.0",
// The command is tsc. Assumes that tsc has been installed using npm install -g typescript
"command": "start",
// The command is a shell script
"isShellCommand": true,
// Show the output window only if unrecognized errors occur.
"showOutput": "silent",
// args is the HelloWorld program to compile.
"args": [
"ACD-Manager",
"/B",
"/D",
"./manager/",
"node",
"manager.js"
]
}
上述任务使用 cmd start
能力。我还不确定如何启动多个节点任务而不是一个,但由于这个任务命名问题,我什至无法启动一个任务。
如何在 tasks.json 文件中命名任务?
原文由 Brent Arias 发布,翻译遵循 CC BY-SA 4.0 许可协议
所以,如果它仍然相关,或者如果有人发现这个线程有同样的问题,我刚刚弄清楚它是如何工作的:
在 tasks.json 中,您需要创建一个 “任务”数组- 代码提示将帮助您 - 它包含一个对象数组。在对象内部,您可以拥有 “taskName” 键值对。
例子:
就我而言,在运行我的项目之前,我必须运行
npm run-script webpack
命令。在 launch.json 文件中,"preLaunchTask": "runwebpack"
现在可以工作了。注意:在我的示例中,
suppressTaskName
是正确的。省略它或将其设置为 false 将导致 VS Code 在命令后附加taskName
。更通用的方法是这样的:
对于后一个示例,您可以使用其他要运行的脚本来扩展
tasks
数组。_提示我的用法_:npm run-script 从 package.json 文件的
scripts
对象中获取要做什么。编辑:这适用于 VS Code 1.3.1