Visual Studio Code文档提供了示例tasks.json配置,允许打字稿编译或markdown编译。 它没有阐明如何同时实现两者。
怎么能做到这一点呢?
以下是两个示例的摘要...
打字稿示例
如果我希望VSCode执行打字稿构建步骤,说明说我需要安装打字稿(npm install -g typescript
(,然后定义以下任务:
{
"version": "0.1.0",
"command": "tsc",
"isShellCommand": true,
"showOutput": "silent",
"args": ["*.ts"],
"problemMatcher": "$tsc"
}
降价示例
如果我希望VSCode执行降价构建步骤,文档说我可以安装我选择的降价插件(例如 npm install -g marked
(,然后定义一个任务:
{
"version": "0.1.0",
"command": "marked",
"isShellCommand": true,
"args": ["sample.md", "-o", "sample.html"]
}
现在怎么办?
显然,tasks.json可能只包含一个JSON对象。 因此,我不能简单地用逗号连接上面的两个定义。 另一方面,可以在整体任务定义中定义多个任务:
{
"version": "0.1.0",
"command": "<what goes here?>",
"isShellCommand": true,
"suppressTaskName": true, //or false?
"tasks": [
{
"taskName": "Launch Typescript"
},
{
"taskName": "Launch Markdown"
}
]
}
以上是法律语法的骨架,但不清楚如何完成这个故事。 我知道这里和那里都在讨论如何解决这类问题,但似乎存在根本性的脱节。例如,当我按 ctrl+shift+b
时,VSCode 如何知道它应该执行这两个任务?
可以肯定的是,VSCode 的开发人员有一种更直接、更简单的方式来适应多个构建任务。 有谁知道那是什么?
你几乎找到了正确的答案。
您可以定义多个生成任务,如上一个示例所示。
您没有意识到的是,您可以覆盖任务中的全局属性。这意味着在一个任务中,你可以以一种方式定义"命令"和"args",而在另一种情况下用完全不同的值定义它。
从某种意义上说,将上面两个示例的内容复制到上一个示例中的每个任务中