39cd9c693e2d3fb888e5159c3659e32397bf9560
vscode/\343\202\277\343\202\271\343\202\257\343\202\222\345\256\237\350\241\214\343\201\231\343\202\213\345\272\246\343\201\253\346\226\260\343\201\227\343\201\204\343\202\277\343\203\274\343\203\237\343\203\212\343\203\253\343\203\221\343\203\215\343\203\253\343\202\222\351\226\213\343\201\217.md
| ... | ... | @@ -0,0 +1,116 @@ |
| 1 | +この記事はgpt-5.1によって生成されました。 |
|
| 2 | + |
|
| 3 | +## 概要 |
|
| 4 | + |
|
| 5 | +VS Code のタスク実行では、デフォルトで複数タスクが同じターミナル(shell)を共有します。 |
|
| 6 | +タスク実行のたびに新しい shell を使いたい場合は、`tasks.json` の `"presentation"` 設定で制御します。 |
|
| 7 | + |
|
| 8 | +--- |
|
| 9 | + |
|
| 10 | +## 基本設定 |
|
| 11 | + |
|
| 12 | +`tasks.json` 内でタスクごと、または全体のデフォルトに対して `"presentation"` を指定します。 |
|
| 13 | + |
|
| 14 | +```jsonc |
|
| 15 | +"presentation": { |
|
| 16 | + "reveal": "always", // または "silent" など |
|
| 17 | + "panel": "new" // ← ここがポイント |
|
| 18 | +} |
|
| 19 | +``` |
|
| 20 | + |
|
| 21 | +### `"panel"` の値と意味 |
|
| 22 | + |
|
| 23 | +- `"shared"` |
|
| 24 | + - デフォルト |
|
| 25 | + - 複数のタスクが同じターミナルを共有する(shell を使い回す) |
|
| 26 | + |
|
| 27 | +- `"dedicated"` |
|
| 28 | + - タスクごとに専用ターミナルを 1 つ割り当てる |
|
| 29 | + - 同じタスクを再実行した場合は、同じ専用ターミナルを再利用する |
|
| 30 | + |
|
| 31 | +- `"new"` |
|
| 32 | + - タスク実行のたびに新しいターミナルを作成する |
|
| 33 | + - 毎回新しい shell を起動し、使い回さない |
|
| 34 | + |
|
| 35 | +「毎回必ず新しい shell で実行したい」場合は `"panel": "new"` を指定します。 |
|
| 36 | + |
|
| 37 | +--- |
|
| 38 | + |
|
| 39 | +## タスク単位での設定例 |
|
| 40 | + |
|
| 41 | +### 実行のたびに新しい shell を使うタスク |
|
| 42 | + |
|
| 43 | +```jsonc |
|
| 44 | +// .vscode/tasks.json |
|
| 45 | +{ |
|
| 46 | + "version": "2.0.0", |
|
| 47 | + "tasks": [ |
|
| 48 | + { |
|
| 49 | + "label": "run script", |
|
| 50 | + "type": "shell", |
|
| 51 | + "command": "echo hello && sleep 3", |
|
| 52 | + "presentation": { |
|
| 53 | + "reveal": "always", |
|
| 54 | + "panel": "new" |
|
| 55 | + } |
|
| 56 | + } |
|
| 57 | + ] |
|
| 58 | +} |
|
| 59 | +``` |
|
| 60 | + |
|
| 61 | +`"run script"` タスクを実行するたびに、新しいターミナル(shell)が開かれます。 |
|
| 62 | + |
|
| 63 | +### 同じタスク用に専用ターミナルを使う場合 |
|
| 64 | + |
|
| 65 | +```jsonc |
|
| 66 | +"presentation": { |
|
| 67 | + "reveal": "always", |
|
| 68 | + "panel": "dedicated" |
|
| 69 | +} |
|
| 70 | +``` |
|
| 71 | + |
|
| 72 | +- タスクごとに 1 つ専用ターミナルを持つ |
|
| 73 | +- 同じタスクを再実行するときは同じターミナルを再利用 |
|
| 74 | +- 異なるタスク同士はターミナルを共有しない |
|
| 75 | + |
|
| 76 | +--- |
|
| 77 | + |
|
| 78 | +## すべてのタスクに対するデフォルト設定 |
|
| 79 | + |
|
| 80 | +毎回タスクごとに `"presentation"` を書きたくない場合は、`tasks.json` のトップレベルの `"options"` でデフォルトを指定できます。 |
|
| 81 | + |
|
| 82 | +```jsonc |
|
| 83 | +// .vscode/tasks.json |
|
| 84 | +{ |
|
| 85 | + "version": "2.0.0", |
|
| 86 | + "options": { |
|
| 87 | + "presentation": { |
|
| 88 | + "panel": "new" |
|
| 89 | + } |
|
| 90 | + }, |
|
| 91 | + "tasks": [ |
|
| 92 | + { |
|
| 93 | + "label": "build", |
|
| 94 | + "type": "shell", |
|
| 95 | + "command": "npm run build" |
|
| 96 | + }, |
|
| 97 | + { |
|
| 98 | + "label": "test", |
|
| 99 | + "type": "shell", |
|
| 100 | + "command": "npm test" |
|
| 101 | + } |
|
| 102 | + ] |
|
| 103 | +} |
|
| 104 | +``` |
|
| 105 | + |
|
| 106 | +ここで `"panel": "new"` を設定しておくと、個々のタスクで `"presentation"` を上書きしない限り、すべてのタスクが実行のたびに新しいターミナル(shell)で起動されます。 |
|
| 107 | + |
|
| 108 | +--- |
|
| 109 | + |
|
| 110 | +## まとめ |
|
| 111 | + |
|
| 112 | +- タスク実行ごとに新しい shell を使いたい → `"panel": "new"` |
|
| 113 | +- タスクごとに専用ターミナルを使いたい → `"panel": "dedicated"` |
|
| 114 | +- 複数タスクでターミナルを共有してもよい → `"panel": "shared"`(デフォルト) |
|
| 115 | + |
|
| 116 | +`tasks.json` の `"presentation"` 設定で、VS Code のタスク実行時の shell の使われ方を調整できます。 |
|
| ... | ... | \ No newline at end of file |