VS Code ワークスペースとは?
Visual Studio Code のワークスペースとは、VS Code ウィンドウ (インスタンス) で開かれている1つまたは複数のフォルダーの集合です。ほとんどの場合、ワークスペースとして単一のフォルダーが開かれます。ただし、開発ワークフローによっては、マルチルートワークスペースと呼ばれる高度な構成を使用して、複数のフォルダーを含めることができます。
ワークスペースの概念により、VS Code は以下を可能にします。
- 特定のフォルダーにのみ適用される設定を構成し、他のフォルダーには適用しない。
- そのワークスペースのコンテキストでのみ有効なタスクとデバッガー起動構成を永続化する。
- そのワークスペースに関連付けられた UI 状態 (例えば、開かれているファイル) を保存および復元する。
- そのワークスペースにのみ拡張機能を選択的に有効または無効にする。
VS Code のドキュメント、課題、コミュニティの議論では、「フォルダー」と「ワークスペース」という用語が interchangeably (互換的に) 使用されている場合があります。ワークスペースは、VS Code の追加の知識と機能を備えたプロジェクトのルートと考えることができます。
注: ワークスペースなしで VS Code を開くことも可能です。たとえば、プラットフォームのファイルメニューからファイルを選択して新しい VS Code ウィンドウを開くと、ワークスペース内にはいません。このモードでは、VS Code の機能の一部は制限されますが、テキストファイルを開いて編集することは可能です。
VS Code の「ワークスペース」を開くには?
ファイル > フォルダーを開く... メニューを使用し、フォルダーを選択することでワークスペースを開くことができます。
あるいは、ターミナルから VS Code を起動する場合、開くための code
コマンドの最初の引数としてフォルダーへのパスを渡すことができます。例えば、以下のコマンドを使用して現在のフォルダー (.
) を VS Code で開きます。
code .
単一フォルダーのワークスペース
フォルダーを VS Code ワークスペースにするために、VS Code でフォルダーを開く以外に何もする必要はありません。フォルダーを開くと、VS Code は開いているファイルやエディターのレイアウトなどの構成を自動的に追跡します。そのフォルダーを VS Code で再度開くと、エディターは以前の状態に戻ります。
ワークスペース固有の設定 (グローバルユーザー設定とは対照的に)、タスク定義、デバッグ起動ファイルなど、他のフォルダー固有の構成を追加することもできます (下記のワークスペース設定セクションを参照)。
VS Code で開かれた単一フォルダーワークスペース
マルチルートワークスペース
マルチルートワークスペースは、複数の異なるフォルダーを同じワークスペースの一部として構成できる VS Code の高度な機能です。フォルダーをワークスペースとして開く代わりに、ワークスペース内のすべてのフォルダーをリストした <name>.code-workspace
JSON ファイルを開きます。例えば
{
"folders": [
{
"path": "my-folder-a"
},
{
"path": "my-folder-b"
}
]
}
VS Code で開かれたマルチルートワークスペース
注: フォルダーを開いた場合と
.code-workspace
ファイルを開いた場合の視覚的な違いは微妙な場合があります。.code-workspace
ファイルが開かれたことを示すヒントとして、ユーザーインターフェースの一部の領域 (例えば、ファイルエクスプローラーのルート) では、名前の横に(ワークスペース)という追加の接尾辞が表示されます。
無題のマルチルートワークスペース
ワークスペース内のフォルダーを柔軟に追加または削除できます。まず VS Code でフォルダーを開き、その後必要に応じてさらにフォルダーを追加できます。
ワークスペースにフォルダーを追加または削除するためのファイルエクスプローラーのコンテキストメニュー
.code-workspace
ファイルをすでに開いている場合を除き、ワークスペースに2番目のフォルダーを初めて追加すると、VS Code は自動的に無題のワークスペースを作成します。バックグラウンドでは、VS Code は現在のセッションのすべてのフォルダーとワークスペース設定を含む untitled.code-workspace
ファイルを自動的に維持します。このワークスペースは、ディスクに保存することを決定するまで無題のままです。
VS Code で開かれた無題のマルチルートワークスペース
注: 無題のワークスペースと保存されたワークスペースの間には、無題のワークスペースが便宜のために自動的に作成され、保存するまで常に復元されるという事実以外に違いはありません。VS Code は、無題のワークスペースが開かれているウィンドウを閉じるときに、(確認を求めた後で) 無題のワークスペースを自動的に削除します。
ワークスペース設定
ワークスペース設定を使用すると、開いているワークスペースのコンテキストで設定を構成できます。ワークスペース設定は、常にグローバルユーザー設定を上書きします。これらは物理的に JSON ファイルに保存され、その場所は、フォルダーをワークスペースとして開いたか、または .code-workspace
ファイルを開いたかによって異なります。
設定スコープとそのファイル場所の詳細な説明については、設定ドキュメントを参照してください。
単一フォルダーワークスペース設定
フォルダーをワークスペースとして開くと、ワークスペース設定は .vscode/settings.json
に保存されます。
フォルダーがワークスペースとして開かれた時の設定エディター
マルチルートワークスペース設定
.code-workspace
をワークスペースとして開くと、すべてのワークスペース設定がその .code-workspace
ファイルに追加されます。
ルートフォルダーごとに設定を構成することも可能で、設定エディターにはフォルダー設定と呼ばれる3番目の設定スコープが表示されます。
マルチルートワークスペースが開かれた時の設定エディター
フォルダーごとに構成された設定は、.code-workspace
で定義された設定を上書きします。
ワークスペースのタスクと起動構成
ワークスペース設定がワークスペースに固有であるのと同様に、タスクと起動構成もワークスペースにスコープを設定できます。
フォルダーをワークスペースとして開いたか、.code-workspace
ファイルを開いたかに応じて、ワークスペースのタスクと起動構成の場所は、.vscode
フォルダー内、または .code-workspace
ファイル内のいずれかになります。さらに、.code-workspace
ファイルを開いている場合でも、タスクと起動構成は常にフォルダーレベルで定義できます。
VS Code でタスクと起動構成を使用する方法のより包括的な概要については、タスクとデバッグの章を参照してください。
よくある質問
マルチルートワークスペースをフォルダーよりも使用する利点は何ですか?
最も明白な利点は、マルチルートワークスペースを使用すると、ディスク上の同じ親フォルダー内に保存されていない可能性のある複数のプロジェクトを操作できることです。どこからでもフォルダーを選択してワークスペースに追加できます。
主に単一フォルダーベースのプロジェクトで作業している場合でも、.code-workspace
ファイルを使用することには利点があります。シナリオに応じて、プロジェクトの特定の側面をスコープ化されたフォルダービューで提供するために、フォルダー内に複数の .code-workspace
ファイルを保存できます (例えば、ファイルエクスプローラーから無関係なフォルダーを除外するために client.code-workspace
、server.code-workspace
)。.code-workspace
ファイルは folders
セクションの相対パスをサポートしているため、これらのワークスペースファイルは、フォルダーがどこに保存されていても、誰にとっても機能します。
最後に、特定のプロジェクトで同じワークスペース設定またはタスク/起動構成のセットを適用したい場合は、これらを .code-workspace
ファイルに追加し、そのワークスペースからこれらのフォルダーを追加または削除することを検討してください。
VS Code は再起動時にすべての無題のワークスペースを復元するのはなぜですか?
無題のワークスペースは、明示的に保持するかどうかを決定する必要があるものとして設計されています。無題のワークスペースが初めて作成されると、VS Code は指定されたフォルダーをワークスペースファイルに追加し、既存のすべてのワークスペース設定も追加します。このユーザーデータは、無題のワークスペースが保存または削除されるまで、常に VS Code ウィンドウで復元および表示されます。
無題のワークスペースを削除するにはどうすればよいですか?
無題のワークスペースを削除するには、そのウィンドウを閉じ、無題のワークスペースを保存するプロンプトを閉じます。
フォルダーなしでマルチルートワークスペースを使用できますか?
.code-workspace
ファイルの folders
セクションを空のままにすることで、ルートフォルダーを表示しない VS Code インスタンスになることが可能です。この場合でも、ワークスペース設定、さらにはタスクや起動構成を保存できます。
VS Code はプロジェクトまたはソリューションをサポートしていますか?
VS Code には、Visual Studio IDE のような他の開発ツールで定義されるような「プロジェクト」や「ソリューション」の概念はありません。VS Code のドキュメントで「プロジェクト」という用語を目にすることがあるかもしれませんが、それは通常、「作業中のもの」を意味します。プログラミング言語やフレームワークによっては、ツールセット自体がビルド構成を定義したり、含まれるファイルを列挙したりするために、「プロジェクト」と呼ばれるものをサポートしている場合があります。