如何作为一个组运行多个任务?

WoJ*_*WoJ 5 visual-studio-code vscode-tasks

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

{
    "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 Code Online (Sandbox Code Playgroud)

我可以逐个启动它们group(所以我需要发出两次序列,每次执行一次),最后我会同时运行两个任务.

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

ale*_*edl 9

您可以使用"dependsOn"属性.如果要首先运行"构建站点"任务,请将其添加为"服务站点"任务的"dependsOn".如果您希望两者一起运行,请执行另一项依赖于"构建站点"和"服务站点"任务的任务.

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

{
  "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
},
Run Code Online (Sandbox Code Playgroud)

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

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

{
  "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"
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,但是这将不起作用,因为“构建站点”是一项不会结束的任务。实际上,这两个任务都不会结束,必须并行运行。 (2认同)