结合Visual Studio代码构建任务

Bre*_*ias 5 markdown node.js typescript visual-studio-code vscode-tasks

Visual Studio Code 文档提供了examples.json配置示例,它允许使用typescript编译或markdown编译.它没有说明如何同时实现两者.

怎么办?

以下是两个例子的摘要......

打字稿示例

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

{
    "version": "0.1.0",
    "command": "tsc",
    "isShellCommand": true,
    "showOutput": "silent",
    "args": ["*.ts"],
    "problemMatcher": "$tsc"
}
Run Code Online (Sandbox Code Playgroud)

降价示例

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

{
    "version": "0.1.0",
    "command": "marked",
    "isShellCommand": true,
    "args": ["sample.md", "-o", "sample.html"]
}
Run Code Online (Sandbox Code Playgroud)

怎么办?

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

{
    "version": "0.1.0",
    "command": "<what goes here?>",
    "isShellCommand": true,
    "suppressTaskName": true, //or false?

    "tasks": [
        {
            "taskName": "Launch Typescript"
        },
        {
            "taskName": "Launch Markdown"
        }        
    ]
}
Run Code Online (Sandbox Code Playgroud)

以上是法律语法的框架,但目前还不清楚如何完成故事.我知道在这里那里讨论如何解决这些问题,但似乎存在根本性的脱节.例如,当我按下时,VSCode如何知道应该执行这两个任务ctrl+shift+b

确实,VSCode的开发人员可以更直接,更简单地适应多个构建任务.有谁知道那是什么?

Tob*_*lez 0

你几乎就得到了正确的答案。

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

您没有意识到您可以覆盖任务中的全局属性。这意味着在一项任务中,您可以以一种方式定义“command”和“args”,而在另一种任务中则可以使用完全不同的值来定义它。

从某种意义上说,将上面两个示例的核心内容复制到最后一个示例中的每个任务中