如何在构建中运行VS Code中的多个任务?

Jac*_*amm 9 visual-studio-code vscode-tasks

使用tasks.json版本2.0.0,我无法做到这一点,当我构建我的应用程序时,多个任务同时运行.我正在使用gulp进行SCSS编译,并且运行我自己的Compile/minify cms.scss任务工作正常,所以这不是任务本身的问题,只是VS Code的任务运行器.当我Run Build Task在VS Code中时,我的gulp任务没有被运行,即使它有"group": "build"- 只有dotnet一个是.

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspaceFolder}/HpsCoreWeb.csproj"
            ],
            "problemMatcher": "$msCompile",
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Compile/minify cms.scss",
            "type": "gulp",
            "task": "cms.scss:cms.min.css",
            "problemMatcher": "$node-sass",
            "group": "build"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

根据VS Code Tasks文档:

group:定义任务所属的组.在该示例中,它属于该test组.可以通过从命令选项板运行"运行测试任务"来执行属于测试组的任务.

dotnet build任务成功,所以应该不是其他的任务,这也是一部分build组,运行呢?我究竟做错了什么?

G.G*_*G.G 15

问题是“运行测试任务”和“运行构建任务”没有执行该特定组中的所有任务。通常,您会得到一个下拉选择,因此您可以选择要执行的任务。由于已将任务之一指定为默认任务,因此将跳过选择,而是执行默认任务。

您可以通过添加依赖项来解决此问题。请看以下示例:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Echo 1",
            "command": "echo",
            "type": "shell",
            "args": [ "echo1" ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "dependsOn":["Echo 2"]
        },
        {
            "label": "Echo 2",
            "type": "shell",
            "command": "echo",
            "args": [ "echo2" ],
            "group": "build"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

作为Echo 1依赖于Echo 2Echo 2将被执行之前执行的Echo 1。请注意,该定义是一个列表,因此可以指定多个任务。在这种情况下,任务将并行执行。

在您的情况下,添加"dependsOn":["Compile/minify cms.scss"]到主构建任务中应执行这两个任务。


que*_*ent 12

您可以使用复合任务

下面的示例在调用“构建”任务时执行“客户端构建”和“服务器构建”任务。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Client Build",
      "command": "gulp",
      "args": ["build"],
      "options": {
        "cwd": "${workspaceFolder}/client"
      }
    },
    {
      "label": "Server Build",
      "command": "gulp",
      "args": ["build"],
      "options": {
        "cwd": "${workspaceFolder}/server"
      }
    },
    {
      "label": "Build",
      "dependsOn": ["Client Build", "Server Build"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)