問題
- nodenvでNode.jsバージョンごとに独立したパッケージ環境
- Claude Codeは
22.12.0
にのみインストール済み - 他のバージョンに切り替えると
claude
コマンドが使えない
volta
voltaの場合、パッケージ管理機能によりvolta install
で環境間の移動時も同じバージョンのパッケージを利用できる。
volta install @anthropic-ai/claude-code
volta install - Tool Installation and Default Version Setting | Voltawww.voltajs.com
解決策
シェルエイリアスでこの問題を解決できる。
1. エイリアスを設定
使用しているシェルの設定ファイルを編集:
vim ~/.zshrc
vim ~/.bashrc
以下のいずれかを追加:
alias claude='NODENV_VERSION=22.12.0 claude'
claude() {
NODENV_VERSION=22.12.0 command claude "$@"
}
2. 設定を反映
source ~/.zshrc
source ~/.bashrc
3. 動作確認
任意のNode.jsバージョンで確認してみる。
nodenv local 18.17.0
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使用時の有効な回避策である。