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