结合Visual Studio代码构build任务

Visual Studio代码文档提供了示例tasks.jsonconfiguration ,允许打字稿编译或降价编辑。 它并没有阐明如何同时实现两者

如何做到这一点?

这是两个例子的总结

打字稿例子

如果我希望VSCode执行打印脚本构build步骤,说明我需要安装打字稿( npm install -g typescript打印脚本),然后定义以下任务:

 { "version": "0.1.0", "command": "tsc", "isShellCommand": true, "showOutput": "silent", "args": ["*.ts"], "problemMatcher": "$tsc" } 

Markdown示例

如果我希望VSCode执行Markdown构build步骤,文档说我可以安装我select的markdown插件(例如npm install -g marked ),然后定义一个任务:

 { "version": "0.1.0", "command": "marked", "isShellCommand": true, "args": ["sample.md", "-o", "sample.html"] } 

怎么办?

显然,tasks.json可能只包含一个JSON对象。 因此,我不能简单地用逗号将上述两个定义join。 另一方面,可以在整个任务定义中定义多个任务:

 { "version": "0.1.0", "command": "<what goes here?>", "isShellCommand": true, "suppressTaskName": true, //or false? "tasks": [ { "taskName": "Launch Typescript" }, { "taskName": "Launch Markdown" } ] } 

以上是法律语法的骨架,但不清楚如何完成故事。 我知道在这里和那里讨论如何解决这些问题,但似乎有一个根本的脱节。 例如,VSCode如何知道它应该执行这两个任务,当我按ctrl+shift+b

VSCode的开发者确实有一个更直接和更简单的方法来适应多个构build任务。 有人知道那是什么吗?

你几乎是在正确的答案。

您可以定义多个构build任务,如上例所示。

你没有意识到的是你可以覆盖任务内的全局属性。 在一个任务中,你可以用一种方法来定义“command”和“args”,而在另一个任务中,用完全不同的值来定义它。

从某种意义上说,将上面两个例子的肉复制到上一个例子中的每个任务中