⛳
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