VS Codeでtasksを使う

 ・ 2 min

open book lot

Flutterプロジェクトでフォルダ構成をアーキテクチャベースで作るために、1つのドメインを作る際は該当ドメインフォルダの下にapplication、data、domain、presentationフォルダを作ることにしました。

しかし毎回これをやるのは面倒なので、スクリプトがあればいいなと思いました。調べてみると、VS Codeにはtasksという機能が提供されています。

これを使って、希望するドメイン名を入力するとlib/src/features配下にドメイン名のフォルダとapplication、data、domain、presentationフォルダが作られるようにしました。

コマンドパレット(⇧ + ⌘ + p)を開いてtasksと入力すると、いくつかのオプションが表示されます。

image

今回やるべきことは、.vscode/tasks.jsonファイルがない場合にこのファイルを作成することです。
ファイルを直接作るよりもコマンドパレットを使う方が楽なので、こちらで進めます。

taskを作るので、ここでTasks: Configure Taskを選択してください。
するとまた何かを選択するよう表示されます。そこで何でも選択してください。Flutter系のプロジェクトなのでFlutter関連のコマンドが出ますが、shellベースのtaskを作るので削除する予定です。

image

何でも選択するとtasks.jsonに何か入力された状態で作成されているはずです。
入力を受け取った後、入力値がドメインフォルダ名として作成されるようにするため、以下のように記述しました。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Create directories By domain",
      "type": "shell",
      "command": "mkdir -p ${workspaceFolder}/lib/src/features/${input:echoPrompt}/application ${workspaceFolder}/lib/src/features/${input:echoPrompt}/data ${workspaceFolder}/lib/src/features/${input:echoPrompt}/domain ${workspaceFolder}/lib/src/features/${input:echoPrompt}/presentation",
      "args": [],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "presentation": {
        "echo": true,
        "reveal": "always",
        "focus": true,
        "panel": "new"
      },
      "problemMatcher": []
    }
  ],
  "inputs": [
    {
      "id": "echoPrompt",
      "description": "Please enter a value",
      "default": "calendar",
      "type": "promptString"
    }
  ]
}

作成したtaskを実行するには、再びコマンドパレット(⇧ + ⌘ + p)を開いてください。

image

今回はTasks:Run Taskを選択します。するとtasks[0].labelの値である"Create directories By domain"がリストに表示されるはずです。

image

tasks.jsonでinputs[0].defaultのデフォルト値を"calendar"にしているため、すでにデフォルト値が入力された状態で表示されます。

image

希望するドメイン名を入力してEnterを押すと、以下のような結果が作成されるはずです!

image

これで使い方がわかったので、必要な様々なtaskを作ってより快適な開発ができそうです。


It all depends on how we look at things, and not how they are in themselves.

— Carl Jung


他の投稿
混公コンピュータ運用 - 5週目 混公学習団の宿題 커버 이미지
 ・ 1 min

混公コンピュータ運用 - 5週目 混公学習団の宿題

世界貿易戦争 커버 이미지
 ・ 3 min

世界貿易戦争

恐怖の脳科学 커버 이미지
 ・ 3 min

恐怖の脳科学