知ってるようで知らないタスク機能を解説します。
Visual Studio Codeには、コマンドランチャーであるタスク機能が付属しています。
タスクの種類には2種類あります。
- 環境から検出し、自動で作成されるタスク
- .vscode/tasks.json に記述し、コマンドなどすべての情報を記述するタスク
この自動で検出するタスクについて、解説します。。
実際にコマンド『Tasks: Run Task』を実行すると、『configured tasks』と『detected tasks』に分かれていることがわかります。
『configured tasks』は.vscode/tasks.jsonで設定したタスクになり、『detected tasks』は拡張機能のタスクプロバイダーがプロジェクトディレクトリから検出したタスクになります。
各タスクの前に書かれている「npm」「tsc」が検出したタスクプロバイダーの名前になります。
このように、プロジェクトで既にGradleやGulpなど既存のタスクランナーを使用している場合、そのタスクランナーを自動で検出してくれる場合があります。
すでにGraleやGulpなど既存のタスクランナーを使っている場合、拡張機能のマーケットプレイスでタスクランナーの名前で検索すると、サポートする拡張機能が見つかります
。
ただし、自動検出したタスクでは以下の制約があります。
- タスクの一部の設定を変更したい場合、通常のタスクとして.vscode/tasks.jsonに記述する必要がある。
- デバッグの設定である.vscode/launch.jsonのpreLaunchTaskの設定を使って、デバッグの前の実行するタスクとして設定することはできない。
- タスクの依存関係を設定できない。
デバッグの前に実行するタスクを設定したり、タスクの依存関係を設計する場合には、.vscode/tasks.jsonにタスクとして記述する必要があります。
このように、既存のタスクランナーを用いている場合には、VSCodeのタスクを作成せずにVSCodeからシームレスに実行できるため、この機能の利用はおすすめです。