web-dev-qa-db-ja.com

ビルド時にVS Codeで複数のタスクを実行する方法は?

tasks.jsonバージョン2.0.0を使用して、アプリケーションをビルドするときに複数のタスクが同時に実行されるようにすることはできませんでした。 SCSSのコンパイルにgulpを使用しており、Compile/minify cms.scssタスクを単独で実行することで問題なく動作するため、タスク自体の問題ではなく、VS Codeのタスクランナーだけです。 VS CodeでRun Build Taskを実行すると、"group": "build"がありますが、dotnetのみがありますが、gulpタスクは実行されていません。

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"
        }
    ]
}

VS Code Tasks documentation によると:

group:タスクが属するグループを定義します。この例では、testグループに属します。テストグループに属するタスクは、Command PaletteからRun Test Taskを実行することで実行できます。

dotnet buildタスクは成功しているので、buildグループの一部でもある他のタスクも実行すべきではありませんか?私は何を間違えていますか?

9
Jacob Stamm

問題は、「テストタスクの実行」と「ビルドタスクの実行」がその特定のグループのすべてのタスクを実行しないことです。通常、ドロップダウンの選択項目が表示されるため、実行するタスクを選択できます。タスクの1つをデフォルトとして指定しているため、選択はスキップされ、代わりにデフォルトのタスクが実行されます。

依存関係を追加することで回避できます。次の例をご覧ください。

{
    "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"
        }
    ]
}

Echo 1Echo 2に依存するため、Echo 2を実行する前にEcho 1が実行されます。定義はリストであるため、複数のタスクを指定できます。その場合、タスクは並行して実行されます。

あなたの場合、"dependsOn":["Compile/minify cms.scss"]をメインのビルドタスクに追加すると、両方のタスクが実行されます。

15
G.G

Package.jsonにプラグインを入れるvar gulpLoadPlugins = require('gulp-load-plugins'), plugins = gulpLoadPlugins();

このプラグインの詳細については、こちらを参照してください Gulpを使用してWebサイトを構築および開発する方法が役立つ場合があります

0
mpes.

Gulp自動検出の設定が有効になっていることを再確認してください。 ( "gulp.autoDetect": "on")

0
Sana Ajani