hamburger-tech-nits

主にプログラミングのNITSな話

VScodeで実行前タスクを定義する

Flutterのビルド前に自動で build_runnerを実行したい。launch.jsonpreLaunchTaskというフィールドがあるので試してみた。

  1. cmd+shift+Pでコマンドパレットを開く
  2. タスクの構成(Tasks: Configure Task)を選択する
  3. taskのテンプレートを選択する。全て自分で選択したい場合は、tasks.jsonから作成するという選択肢があるのでそれを選ぶ。

もしbuild_runner buildのテンプレートを選んだ場合は、こういうファイルができる。--delete-conflicting-outputsは自分が後から追加した。

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "flutter",
            "command": "flutter",
            "args": [
                "pub",
                "run",
                "build_runner",
                "build",
                "--delete-conflicting-outputs" # 自分で追加したオプション
            ],
            "problemMatcher": [
                "$dart-build_runner"
            ],
            "group": "build",
            "label": "flutter: flutter pub run build_runner build", # launch.jsonに設定するラベル
            "detail": ""
        }
    ]
}

このファイルを呼び出すために、launch.json を編集する。preLaunchTaskに先程のファイルのラベルを設定するだけ。

  "preLaunchTask": "flutter: flutter pub run build_runner build"