在Visual Studio代码中使用“preLaunchTasks”和命名任务

根据文档 ,在debugging之前可以启动一个程序:

要在每个debugging会话开始之前启动任务,请将preLaunchTask设置为preLaunchTask中指定的其中一个任务的名称

我没有看到“命名”任务的示例语法,但架构文档显示了一个名为taskName的属性。 我试图使用它将我的launch.json preLaunchTasks链接到该任务,但它不起作用。 当我启动我的程序时,Visual Studio Code报告了这个错误:

无法find一个独特的任务“发射核心”。 确保任务存在,并且具有唯一的名称。

我的自定义“命名”任务是这样的:

 { "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", } 

然后我尝试改变属性名称从taskNamename , 基于这个链接 。 这也没有奏效。

智能感知不提供如何命名任务的build议。

有谁知道如何在tasks.json文件中唯一命名一个任务? 什么是语法? 什么是属性名称?

最终,我想在自己的node.js应用程序启动之前执行两个或三个node.js进程。 例如,我希望在应用程序启动到debugging器之前启动以下三个应用程序:

 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 startfunction 。 我还不确定如何启动几个节点任务而不是一个,但是由于这个任务命名问题,我甚至无法启动一个任务。

如何在tasks.json文件中命名任务?

所以,如果它仍然是相关的,或者如果有人发现这个线程有同样的问题,我只是弄清楚它是如何工作的:

tasks.json中 ,您需要创build一个'tasks'数组 – 代码提示将帮助您处理这个数组 – 这个数组包含一个对象数组。 在一个对象内部,你可以有'taskName'键值对。

例:

 { "version": "0.1.0", "command": "npm", "isShellCommand": true, "args": ["run-script", "webpack"], "showOutput": "always", "tasks": [ { "taskName": "runwebpack", "suppressTaskName": true } ] } 

在我的情况下,我必须在运行我的项目之前运行npm run-script webpack命令。 在launch.json文件中, "preLaunchTask": "runwebpack"现在可以工作。

注意:在我的例子中, suppressTaskName是真的。 忽略它或将其设置为false将导致VS代码在命令后面附加taskName

更一般的方法是这样的:

 { "version": "0.1.0", "command": "npm", "isShellCommand": true, "args": ["run-script"], "showOutput": "always", "tasks": [ { "taskName": "webpack" } ] } 

在后面的例子中,你可以用其他脚本来扩展tasks数组,以便运行。

提示我的用法 :npm run-script从package.json文件的scripts对象中获取要执行的操作。

编辑:这与VS代码1.3.1

我只是真的看到了与Gulp有关的taskName; 我敢肯定,还有其他的东西,但我没有太多的洞察力。 也许这可以让你开始,你已经有了什么?

在VSCODE中运行预启动任务