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
グループの一部でもある他のタスクも実行すべきではありませんか?私は何を間違えていますか?
問題は、「テストタスクの実行」と「ビルドタスクの実行」がその特定のグループのすべてのタスクを実行しないことです。通常、ドロップダウンの選択項目が表示されるため、実行するタスクを選択できます。タスクの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 1
はEcho 2
に依存するため、Echo 2
を実行する前にEcho 1
が実行されます。定義はリストであるため、複数のタスクを指定できます。その場合、タスクは並行して実行されます。
あなたの場合、"dependsOn":["Compile/minify cms.scss"]
をメインのビルドタスクに追加すると、両方のタスクが実行されます。
Package.jsonにプラグインを入れるvar gulpLoadPlugins = require('gulp-load-plugins'), plugins = gulpLoadPlugins();
このプラグインの詳細については、こちらを参照してください Gulpを使用してWebサイトを構築および開発する方法が役立つ場合があります
Gulp自動検出の設定が有効になっていることを再確認してください。 ( "gulp.autoDetect": "on")