5

我创建了两个任务来帮助我开发网站:

{
    "version": "2.0.0",
    "tasks": [
        {
            "taskName": "build site",
            "command": "jekyll b --watch --incremental",
            "type": "shell",
            "group": "build"
        },
        {
            "taskName": "serve site",
            "command": "./_devd -ol _site",
            "type": "shell",
            "group": "build"
        }
    ]
}

我可以使用 → Run Task 一个一个地启动它们F1(所以我需要发出两次序列,每个任务一次),最后我会同时运行两个任务。

是否可以自动执行此操作并同时运行一组任务? 我认为group条目会将它们组合在一起,但事实并非如此(它们只是被识别为属于buildortest组 - 我没有找到一种方法来立即启动整个组)。

4

1 回答 1

10

您可以使用该"dependsOn"属性。如果"build site"要先运行任务,请将其添加为"dependsOn"任务的"serve site"。如果您希望两者一起运行,请创建另一个依赖于"build site"和任务的"serve site"任务。

以下是在提供网站之前构建网站的示例:

{
  "taskName": "build site",
  "command": "jekyll b --watch --incremental",
  "type": "shell",
  "group": "build"
},
{
  "taskName": "serve site",
  "command": "./_devd -ol _site",
  "type": "shell",
  "group": "build",
  "dependsOn": "build site" // <--- Added this
},

不知道用更清洁的方法来处理长时间运行的任务,但是......

以下是同时运行两个任务的示例:

{
  "taskName": "Run Everything", // <-- Bind this task to a key
  "dependsOn": [ "build site", "serve site" ]
},
{
  "taskName": "build site",
  "command": "jekyll b --watch --incremental",
  "type": "shell"
},
{
  "taskName": "serve site",
  "command": "./_devd -ol _site",
  "type": "shell"
}

更新:这是新模板 (v2.0.0)文档的链接。tasks.json与此问题相关的部分taskName已重命名为label,但dependsOn的值保持不变。

于 2017-08-03T14:22:57.850 回答