VS Code ワークスペースとは何ですか?
Visual Studio Code のワークスペースとは、VS Code ウィンドウ (インスタンス) で開かれている 1 つまたは複数のフォルダーのコレクションです。ほとんどの場合、単一のフォルダーがワークスペースとして開かれます。ただし、開発ワークフローによっては、マルチルートワークスペースと呼ばれる高度な構成を使用して、複数のフォルダーを含めることができます。
ワークスペースの概念により、VS Code は次のことが可能になります。
- 特定のフォルダーまたはフォルダーには適用されるが、他のフォルダーには適用されない設定を構成する。
- そのワークスペースのコンテキストでのみ有効なタスクおよびデバッガー起動構成を永続化する。
- そのワークスペースに関連付けられた UI 状態 (たとえば、開いているファイル) を保存および復元する。
- そのワークスペースに対してのみ拡張機能を Selective に有効または無効にする。
VS Code のドキュメント、イシュー、およびコミュニティディスカッションでは、「フォルダー」と「ワークスペース」という用語が同じ意味で使用されている場合があります。ワークスペースは、追加の 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 ドキュメントで「プロジェクト」という用語が表示される場合がありますが、通常は「作業中のもの」を意味します。プログラミング言語またはフレームワークによっては、ツールセット自体がビルド構成の定義や含まれるファイルの列挙に役立つ「プロジェクト」と呼ばれるものをサポートしている場合があります。