Claude CodedでNode.jsバージョンエラー

に公開

Node.js のバージョンが切り替わらない原因と解決方法(nodebrew優先)

はじめに

nodebrewで最新バージョン(v23.11.1)をインストールしたのに、node -v を実行すると古いバージョン(v18.17.0)が表示される…。
この現象の原因と、nodebrewのバージョンを優先させる方法をまとめます。


原因

node -v 実行時のPATH優先順位が、nodebrewよりも nvm/usr/local/bin のNodeを先に解決していたため。

which -a node
# 出力例
/Users/username/.nvm/versions/node/v18.17.0/bin/node
/usr/local/bin/node
この状態では、nodebrewでインストールしたNode(v23.11.1)が存在していても使われません。

解決方法
1. nvm を無効化
現在のシェルから一時的に外す場合:

bash
nvm unload
恒久的に無効化する場合は、シェル設定ファイルからnvmの初期化行をコメントアウトします。

bash
# bash の場合
nano ~/.bash_profile
# zsh の場合
nano ~/.zprofile
コメントアウト例:

bash
# export NVM_DIR="$HOME/.nvm"
# [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
# [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
2. /usr/local/bin/node の削除
Homebrew管理でない場合はbrew unlink nodeが使えません。手動で削除します。

bash
sudo rm -f /usr/local/bin/node
sudo rm -f /usr/local/bin/npm /usr/local/bin/npx

3. nodebrew のPATHを先頭に追加
シェル設定ファイルに追記します。

bash
echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile  # zshは ~/.zprofile
source ~/.bash_profile  # zshは source ~/.zprofile

4. nodebrewのNodeを適用
nodebrew use v23.11.1
hash -r
node -v

# v23.11.1 が表示されればOK
注意点
PATHの順序が最重要
which -a node で優先されるNodeを常に確認しましょう。

複数のNode管理ツールを併用しない
nvm / brew / nodebrew の併用は競合の原因になります。

削除は慎重に
/usr/local/bin/node を削除する前に、本当に不要か確認してください。

シェル設定ファイルの違い
bash ~/.bash_profile
zsh ~/.zprofile

まとめ
nodebrewでインストールしたNodeを優先させるには、
「古いNodeを無効化」→「PATHを修正」→「nodebrewで切替」 の順がポイントです。

これで、addAbortListener など新しいNode機能も問題なく使えるようになります

Discussion