🤢

[VSCode] Claude Code拡張がNode.jsを認識してくれなかった

に公開

https://github.com/anthropics/claude-code/issues/8757

上記の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 は通されている

原因

https://github.com/anthropics/claude-code/issues/8757#issuecomment-3374751214

  • ターミナルを経由する場合、起動時に ~/.bashrc 等でバージョンマネージャー経由にインストールされたNode.jsがきちんと PATH で認識出来る様になる
  • 今回の様にターミナルを経由しない場合、GUIログイン時の設定として ~/.profile ~/.config/environment.d/ 配下に環境変数設定等を書かないと正しく認識してくれない
    • GUI起動なので主は後者が物を言いそう
    • ~/.profilecode . の時に効かせるイメージか

対処ステップ

nvm でインストールした場合で記載します。

~/.profilenvm 設定を追加

.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