問題の概要コマンド(「Live Server」やPrettierのフォーマットなど)を実行しようとすると、VS Codeに「Command not found」というアラートが表示されることがあります。これは非常に紛らわしいエラーです。サイドバーでは拡張機能が「インストール済み」と表示されているのに、エディタ上では存在しないかのように振る舞います。これは、VS Codeが拡張機能のマニフェストからコマンド名を認識しているものの、実際のバックグラウンドプロセス(拡張機能ホスト)がエンジンへの接続に失敗しているために起こります。
原因ボタンとコードの間のリンクが切れてしまう原因には、以下のようないくつかの問題が考えられます。
- 拡張機能ホストプロセスがバックグラウンドでサイレントにクラッシュした。- 特定のNode.jsバージョンやPythonインタープリタなどの依存関係が不足しており、アクティベーションがブロックされた。-
package.jsonのactivationEventsセクションにタイポ(入力ミス)がある。- アップデートの失敗により、ローカルの拡張機能キャッシュが破損した。- 拡張機能が現在のVS Codeのバージョンに対して新しすぎる(または古すぎる)。## ステップバイステップの修正方法### 1. ウィンドウの再読み込み(Developer Reload)を実行するアプリを閉じて開き直すだけでは不十分な場合があります。「ウィンドウの再読み込み」は、ワークスペース全体を終了させることなく、拡張機能ホストのみをターゲットに再起動します。これは、一時的な不具合の90%を解決する最も速い方法です。 - Ctrl+Shift+P (Windows/Linux) または Cmd+Shift+P (macOS) を押します。-
Developer: Reload Windowと入力して Enter を押します。拡張機能が初期化されるまで数秒待ちます。これでコマンドが機能するようになれば、単にプロセスがハングしていただけと考えられます。
2. 拡張機能ホストのログを確認するエラーが解消されない場合、VS Codeは何が問題なのかを具体的に示しているはずです。どこを見ればよいかを知る必要があります。
表示 > 出力(View > Output)から出力パネルを開きます。- パネル右上のドロップダウンメニューを「タスク」から拡張機能ホスト(Extension Host)に切り替えます。- 赤いテキストを探します。Module not foundやActivation failedといった表示があるはずです。例えば、gitバイナリが見つからないというエラーが出ている場合、拡張機能自体が壊れているのではなく、システムのパス設定に問題があることがわかります。
3. 再インストールして破損したファイルをクリアするアップデートが途中で失敗し、ファイルが不完全な状態で残ることがあります。クリーンな再インストールで解決することがよくあります。
- 拡張機能ビューを開きます(
Ctrl+Shift+X)。- 対象の拡張機能(例:「C# Dev Kit」や「ESLint」)を見つけ、アンインストールをクリックします。- VS Codeを再起動します。古いファイルが完全に解放されるようにするために、このステップは非常に重要です。- 拡張機能を検索し、インストールをクリックします。### 4. VS Codeのキャッシュを削除するVS Codeは起動を高速化するために、拡張機能のメタデータをCachedDataフォルダに保存しています。このフォルダの同期が取れなくなると、存在しないファイルを指し示すことがあります。これを削除しても安全です。VS Codeは次回の起動時に自動的に再構築します。 Windowsの場合:
rmdir /s /q %APPDATA%\Code\CachedData
macOS/Linuxの場合:
rm -rf ~/Library/Application\ Support/Code/CachedData # macOS用
rm -rf ~/.config/Code/CachedData # Linux用
5. 拡張機能開発者の場合:マニフェストを検証する拡張機能を開発中で、自作のコマンドが実行されない場合は、package.json を確認してください。コマンドは2つの異なる場所で登録する必要があります。
まず、contributes.commands でUIのエントリを定義します。
"contributes": {
"commands": [
{
"command": "myExtension.helloWorld",
"title": "ハローワールド"
}
]
}
次に、VS Codeに対していつコードをロードするかを伝えます。バージョン1.74以降、VS Codeは「遅延読み込み」が改善されましたが、デバッグの際は activationEvents に明示的にコマンドをリストするのが最も確実です。
"activationEvents": [
"onCommand:myExtension.helloWorld"
]
最後に、main フィールドが実際のコンパイル済みスクリプト(例:./out/extension.js)を指しており、存在しないソースファイルを指していないか確認してください。

