零弐壱蜂

[nodenv] Claude Codeを違うNode.jsバージョンでも共通で使う方法

問題

  • nodenvでNode.jsバージョンごとに独立したパッケージ環境
  • Claude Codeは22.12.0にのみインストール済み
  • 他のバージョンに切り替えるとclaudeコマンドが使えない
    • 各環境で個別にインストールが必要になる

解決策

シェルエイリアスを設定することで、この問題を解決できる。

1. エイリアスを設定

使用しているシェルの設定ファイルを編集:

# zshの場合
vim ~/.zshrc

# bashの場合
vim ~/.bashrc

以下の行を追加:

alias claude='NODENV_VERSION=22.12.0 claude'

2. 設定を反映

# zshの場合
source ~/.zshrc

# bashの場合
source ~/.bashrc

3. 動作確認

任意のNode.jsバージョンで確認してみる。

# 別のバージョンに切り替え
nodenv local 18.17.0

# Claude Codeが使えることを確認
claude -v

動作の仕組み

  • Claude Codeは Node.js 22.12.0 環境にインストールされている
  • NODENV_VERSION=22.12.0 により、コマンド実行時のみ一時的に Node.js 22.12.0 を使用
  • エイリアス経由で常に 22.12.0 環境の claude コマンドが実行される
  • 現在のNode.jsバージョンに関係なく、同じコマンドで利用可能

この方法の利点

  • 設定は1行追加するだけで完了
  • インストール済みのバージョンを固定指定するため、動作が安定している
  • 通常の claude コマンドと同じように使えるため、特別な操作を意識する必要がない

この設定により、プロジェクトごとに異なるNode.jsバージョンを使用していても、Claude Codeを問題なく利用できる。

ただ、ネイティブインストールも今後はレディになってくることを考慮すると、将来的にはこういったエイリアス設定は不要になる可能性は高い。執筆時点では、ネイティブインストールはベータ版なのでnodenvを使用している場合の便利な回避策として有効である。