node.js - 组合 Visual Studio Code 构建任务

标签 node.js typescript visual-studio-code markdown vscode-tasks

Visual Studio Code documentation provides example tasks.json configuration允许 typescript 编译或 Markdown 编译。它没有阐明如何同时实现两者

如何做到这一点?

这里是两个例子的总结...

typescript 示例

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

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

Markdown 示例

如果我想让 VSCode 执行 Markdown 构建步骤,文档说我可以安装我选择的 markdown 插件(例如 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"
        }        
    ]
}

以上是合法句法的骨架,但不清楚如何完成这个故事。我知道讨论herethere关于如何解决这类问题,但似乎存在根本性的脱节。例如,当我按下 ctrl+shift+b 时,VSCode 如何知道它应该执行这两个任务?

毫无疑问,VSCode 的开发人员有更直接、更简单的方法来适应多个构建任务。有谁知道那是什么?

最佳答案

你几乎是正确的答案。

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

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

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

关于node.js - 组合 Visual Studio Code 构建任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374902/

相关文章:

javascript - React Relay (react-relay) 与 Typescript 抛出 TypeError : Object prototype may only be an Object or null: undefined

javascript - 如何访问包含 '-' 个字符的对象字段

python - 单击和 pylint

debugging - vs Code 调试 Blazor WASM 独立版

flutter - Flutter-从应用程序接收到错误-32601:找不到方法

node.js - 使用 npm 作为自定义插件管理器?

Node.js:不同的缓冲区输出

javascript - 在node.js中,全局对象(或头对象)有名称吗?

javascript - 多设备中的 Cognito Javascript SDK

reactjs - (事件 : MouseEvent<Element, MouseEvent>) => void' 不可分配给类型 '() => Event'