【VSCode】プロジェクト限定で拡張機能を管理する方法 - extensions.jsonとワークスペース設定

PUBLISHED 2026-02-07

VSCode ではプロジェクト(ワークスペース)単位で拡張機能を管理できます。チームで開発環境を統一したい場合や、プロジェクトによって使う拡張機能を切り替えたい場合に便利です。

この記事では、.vscode/extensions.json による推奨設定と、ワークスペース単位での有効/無効の切り替え方法を解説します。

2つの管理方法

VSCode でプロジェクト限定の拡張機能管理を行う方法は、大きく分けて2つあります。

方法用途設定ファイル
extensions.jsonチームへの推奨・共有.vscode/extensions.json
ワークスペース有効/無効個人の環境切り替え.vscode/settings.json

方法1: extensions.json で推奨拡張機能を定義する

extensions.json とは

.vscode/extensions.json は、プロジェクトで推奨する拡張機能のリストを定義するファイルです。Git でリポジトリに含めることで、チームメンバー全員に同じ拡張機能を推奨できます。

ファイルの作成

プロジェクトルートに .vscode/extensions.json を作成します。

{
  "recommendations": [
    "dbaeumer.vscode-eslint",
    "esbenp.prettier-vscode",
    "bradlc.vscode-tailwindcss"
  ],
  "unwantedRecommendations": []
}
  • recommendations — 推奨する拡張機能の ID リスト
  • unwantedRecommendations — 推奨しない拡張機能の ID リスト
🔍 拡張機能IDの確認方法

拡張機能の ID は、VSCode の拡張機能サイドバーで対象を右クリック → 「Copy Extension ID」で取得できます。publisher.extensionName の形式です。

推奨のポップアップ

extensions.json を含むプロジェクトを VSCode で開くと、未インストールの推奨拡張機能がある場合にポップアップが表示されます。

📌

recommendations はあくまで「推奨」です。自動インストールはされず、ユーザーが手動でインストールする必要があります。

コマンドパレットから一括確認

ポップアップを見逃した場合でも、コマンドパレットから確認できます。

1
コマンドパレットを開く

Ctrl+Shift+P(Mac: Cmd+Shift+P)でコマンドパレットを開きます。

2
推奨拡張機能を表示

Extensions: Show Recommended Extensions と入力して実行します。

3
まとめてインストール

推奨拡張機能の一覧が表示されるので、必要なものをインストールします。

unwantedRecommendations の活用

特定の拡張機能をプロジェクトで使わせたくない場合、unwantedRecommendations に追加します。

{
  "recommendations": [
    "dbaeumer.vscode-eslint"
  ],
  "unwantedRecommendations": [
    "hookyqr.beautify"
  ]
}

この設定により、hookyqr.beautify は推奨一覧に表示されなくなります。Prettier と Beautify の競合を防ぐような場面で有効です。

方法2: ワークスペース単位で拡張機能を有効/無効にする

UI からの操作

グローバルにインストール済みの拡張機能を、特定のワークスペースだけで有効/無効にできます。

1
拡張機能サイドバーを開く

Ctrl+Shift+X(Mac: Cmd+Shift+X)で拡張機能サイドバーを開きます。

2
対象の拡張機能を右クリック

有効/無効を切り替えたい拡張機能を右クリックします。

3
ワークスペース単位を選択

Enable (Workspace) または Disable (Workspace) を選択します。

この設定は .vscode/settings.json に保存されます。

settings.json での管理

ワークスペース単位の有効/無効は、settings.json で直接管理することもできます。

{
  "extensions.disabled": [
    "ms-python.python"
  ]
}
💡 使い分けのポイント

Python プロジェクトでは Python 拡張機能を有効に、フロントエンドプロジェクトでは無効にするなど、プロジェクトの技術スタックに合わせて切り替えると快適です。

方法の使い分け

✅ extensions.json が適するケース
  • チーム全員で同じ拡張機能を使いたい
  • Git で設定を共有したい
  • 新しいメンバーのセットアップを簡単にしたい
❌ ワークスペース設定が適するケース
  • 個人的に特定プロジェクトで拡張機能を無効にしたい
  • グローバルにインストール済みの拡張機能を一部プロジェクトで使わない
  • チームに影響を与えず個人で調整したい
💡 両方を併用するのがベスト

extensions.json でチーム推奨を定義しつつ、個人の環境はワークスペース設定で微調整するのが実践的です。

実践例: Vue.js プロジェクトの設定

Vue.js プロジェクトでの extensions.json の例を示します。

{
  "recommendations": [
    "Vue.volar",
    "dbaeumer.vscode-eslint",
    "esbenp.prettier-vscode",
    "vuetifyjs.vuetify-vscode",
    "syler.sass-indented",
    "netlify.netlify"
  ],
  "unwantedRecommendations": []
}

各拡張機能の役割は以下のとおりです。

拡張機能 ID役割
Vue.volarVue の言語サポート(シンタックスハイライト、型チェック)
dbaeumer.vscode-eslintESLint によるコード品質チェック
esbenp.prettier-vscodeコードの自動フォーマット
vuetifyjs.vuetify-vscodeVuetify のスニペット・自動補完
syler.sass-indentedSass/SCSS のシンタックスサポート
netlify.netlifyNetlify デプロイ連携

よくある間違い

recommendations に追加しただけでは動かない

extensions.json に拡張機能を追加しても、自動インストールはされません。チームメンバーには「コマンドパレット → Show Recommended Extensions からインストールしてください」と伝える必要があります。

拡張機能 ID を間違える

拡張機能名ではなく、拡張機能 IDpublisher.extensionName 形式)を記載する必要があります。

{
  "recommendations": [
    "ESLint",
    "dbaeumer.vscode-eslint"
  ]
}

上記の "ESLint" は ID ではないため認識されません。正しくは "dbaeumer.vscode-eslint" です。

まとめ

プロジェクト限定の拡張機能管理
  • extensions.json でチームへの推奨拡張機能を定義する
  • unwantedRecommendations で使わせたくない拡張機能を指定する
  • ワークスペース設定 で個人の有効/無効を切り替える
  • 注意 recommendations は自動インストールされないため、チームへの周知が必要

参考文献

CATEGORY
TAGS
円