🤢
[VSCode] Claude Code拡張がNode.jsを認識してくれなかった
上記のissue事象にまんまハマった上で、issueを参考にしながらちょっと事象・原因も整理したのでメモしておきます。日本語情報も無かったので丁度良いかな。
環境
- Docker + DevPod上のコンテナで開発
- ベースはGolang公式イメージ
- Node.js v22.22.0
-
nvm install node
経由で導入
-
- Claude Code v2.0.14
事象
-
nvm
volta
等のNodeマネージャーを経由してNode.jsをインストールしている環境上のVSCodeにて、Claude Code拡張をインストールするとError: Claude Code requires Node.js version 18 or higher to be installed
と表示される(=VSCode GUIを開く場合にNode.jsを認識出来ない) - ターミナル上から
claude
を実行すればきちんと実行出来るので、拡張GUI限定 -
nvm
volta
いずれもPATH
は通されている
原因
- ターミナルを経由する場合、起動時に
~/.bashrc
等でバージョンマネージャー経由にインストールされたNode.jsがきちんとPATH
で認識出来る様になる - 今回の様にターミナルを経由しない場合、GUIログイン時の設定として
~/.profile
~/.config/environment.d/
配下に環境変数設定等を書かないと正しく認識してくれない- GUI起動なので主は後者が物を言いそう
-
~/.profile
はcode .
の時に効かせるイメージか
対処ステップ
nvm
でインストールした場合で記載します。
~/.profile
に nvm
設定を追加
.profile
...
# ↓を追記
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
~/.config/environment.d/node.conf
を用意
$ mkdir -p ~/.config/environment.d
$ echo "PATH=$HOME/.nvm/versions/$(node -v)/bin:$PATH" > ~/.config/environment.d/node.conf
終わりに
Claude Code側で根本治療が行われた場合は無用になりそうな記事ですが、.bashrc
と .profile
environment.d
の有効シーンが把握出来る意味では有意義な事象かと思うので、参考にして下さい。
Discussion