web-dev-qa-db-ja.com

Visual Studio Code:複数のタスクでpreLaunchTaskを実行する

Launch.jsonファイルのprelaunchtaskで複数のタスクを一度に実行する方法を見つけようとしています。

Tasks.jsonのコードは次のとおりです。

    "version": "2.0.0",
"tasks": [
    {
        "label": "CleanUp_Client",
        "type": "Shell",
        "command": "rm",
        "args": [
            "-f",
            "Client"
        ],
    },
    {
        "label": "Client_Build",
        "type": "Shell",
        "command": "g++",
        "args": [
            "-g",
            "client.cpp",
            "-o",
            "Client",
            "-lssl",
            "-lcrypto"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "problemMatcher": "$gcc"
    }
]

PreLaunchTaskパラメーターのlaunch.jsonで、ビルドタスクを配置するだけで機能しますが、複数のタスク、この場合はCleanUp_ClientとClient_Buildを実行します。

別のpreLaunchTaskを追加しようとしました-ただし、そのパラメーターは1回しか使用できないようですので、試してみました:

"preLaunchTask": "build" + "clean","preLaunchTask": "build"; "clean","preLaunchTask": "build" & "clean","preLaunchTask": "build" && "clean",

すべて成功せず、正しい構文ではありません。

また、これの2番目の部分として、このグループ部分がどのように機能するか、および "isDefault"の意味:trueを知りたいと思います。

参考: https://code.visualstudio.com/docs/editor/tasks

8
Revx0r

これが機能するものです。基本的に、dependsOnキーワードを使用してpreLaunchTaskで実行する他のすべてのタスクを含む別のタスクを作成します。

参照用のコード:

    "tasks": [
    {
        "label": "CleanUp_Client",
        "type": "Shell",
        "command": "rm",
        "args": [
            "-f",
            "Client"
        ]
    },
    {
        "label": "Client_Build",
        "type": "Shell",
        "command": "g++",
        "args": [
            "-g",
            "client.cpp",
            "-o",
            "Client",
            "-lssl",
            "-lcrypto"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "problemMatcher": "$gcc"
    },
    {
        "label": "Build",
        "dependsOn": [
            "CleanUp_Client",
            "Client_Build"
        ]
    }
]

この場合、preLaunchTaskを「ビルド」に設定すると、両方のタスクが実行されます。

Launch.json preLaunchTaskからいくつかのタスクを実行するための代替構文または正しい構文を他の誰かが知っている場合、私は興味があります

9
Revx0r