Claude CodeにNode.jsは必要か — 必要バージョンと確認・切り替え
Claude Code自体はNode.js不要ですが、npmインストールではNode.js 22以上が必要です。確認方法と切り替え方法、MCPサーバー利用時の注意点を扱います。
Claude Codeを使うのにNode.jsが要るかどうかは、インストール方法によって答えが変わります。結論は、ネイティブインストーラーならNode.js不要で、npmでインストールする場合だけNode.js 22以上が必要というものです。
この記事では、どちらの条件に自分が当てはまるかの見分け方と、インストール済みのNode.jsバージョンを確認する方法、必要に応じて切り替える方法をまとめます。
Claude CodeはNode.js無しで動くか
Claude Codeの配布経路は大きく2系統に分かれます。curl -fsSL https://claude.ai/install.sh | bash(Windowsはirm)で入れるネイティブインストーラーはOS・CPUアーキテクチャごとのネイティブバイナリを直接ダウンロードするため、Node.jsのインストールを前提にしません。Windowsのネイティブ版に至っては、公式ドキュメントの一覧表でも要件欄が「None」と明記されています。
一方、npm install -g @anthropic-ai/claude-code でグローバルインストールする方法は、npmコマンド自体がNode.js上で動くツールなので、実行環境にNode.jsが入っている必要があります。
| インストール方法 | Node.jsの要否 | 補足 |
|---|---|---|
ネイティブインストーラー(install.sh / install.ps1 / install.cmd) | Node.jsの要否不要 | 補足ネイティブバイナリを直接ダウンロード |
npm(npm install -g @anthropic-ai/claude-code) | Node.jsの要否必要(22以上) | 補足npmコマンドの実行にNode.jsを使う |
| Homebrew / WinGet / apt・dnf・apk | Node.jsの要否不要 | 補足同じネイティブバイナリを別経路で配布(配布経路ごとの違いはHomebrewでのインストール手順を参照) |
ここで押さえておきたいのは、npmでインストールしたあとのclaudeコマンド自体はNode.jsを呼び出さないという点です。npmパッケージは@anthropic-ai/claude-code-darwin-arm64のようなプラットフォーム別のオプション依存パッケージとしてネイティブバイナリを取得し、postinstallスクリプトでそれを配置します。つまりnpmはインストーラーとして使われているだけで、インストール後の実行時にNode.jsへ依存し続けるわけではありません。
npmでインストールする場合の必要バージョン
公式ドキュメントによると、v2.1.198以降のnpmパッケージはNode.js 22以上を要求します。これより古いNode.jsでnpm install -g @anthropic-ai/claude-codeを実行すると、npmはEBADENGINEという警告を表示します。
ただし、この警告はインストールを失敗させません。インストールは完了し、claudeコマンドも問題なく起動します。理由は前節のとおりで、パッケージがダウンロードするのはネイティブバイナリであり、そのバイナリの実行時にはNode.jsのバージョンが関与しないためです。動作確認さえできれば、その場で警告を無視しても構いません。
逆に言えば、Node.jsのバージョンを気にする必要があるのは「npmでインストール・アップグレードする瞬間」だけです。アップグレードはnpm install -g @anthropic-ai/claude-code@latestで行います。npm update -gは元のインストール時のsemver範囲に従うため最新版に上がらないことがあり、公式ドキュメントも避けるよう案内しています。
npmでインストールするときはsudo npm install -gを使いません。権限エラーとセキュリティリスクにつながるため、公式ドキュメントも明示的に避けるよう警告しています。権限エラーが出た場合は、sudoで回避するのではなくネイティブインストーラーへの切り替えが案内されています。対応プラットフォームはdarwin-arm64 darwin-x64 linux-x64 linux-arm64 linux-x64-musl linux-arm64-musl win32-x64 win32-arm64の8種類で、npmインストールにはパッケージマネージャーがオプション依存関係を許可している必要があります。
インストール済みのNode.jsバージョンを確認する
ターミナルで次のコマンドを実行すると、現在のNode.jsとnpmのバージョンが分かります。
node -v
npm -vnode -vがv22.x.x以上を返せば、npmインストールの要件を満たしています。command not foundのようなエラーが出る場合はNode.js自体が未インストールか、PATHが通っていない状態です(WSL環境で発生しやすいnode: not foundの原因切り分けはnode: not foundエラーの原因 — Claude Code WSLのnpmインストールを参照)。
すでにClaude Codeを使えている場合でも、この確認は無駄になりません。npmインストール環境で将来アップグレードする際に、EBADENGINE警告が出るかどうかを事前に把握できます。
Node.jsのバージョンを切り替える
古いNode.jsしか入っていない場合、システムのNode.js自体を更新するか、バージョン管理ツールで切り替えるかの2択になります。macOS・Linuxで広く使われているのはnvmです。
nvm install 22
nvm use 22
node -v切り替えたあとにClaude Codeのnpmインストールでエラーが出ていた場合は、npm install -g @anthropic-ai/claude-codeを再実行します。すでに動いている場合は、EBADENGINE警告が次回のアップグレード時に出なくなるだけで、再インストールは必須ではありません。
nvmを複数の環境(たとえばWSLとWindows)に入れている場合は、シェル起動時にどちらのnvmが優先されるかでハマりやすいポイントがあります。WSL特有のPATH競合とnpmインストール時の注意点はClaude Code WSL2セットアップにまとめています。
Windowsネイティブ環境(WSLを使わない場合)では、Unix系シェル前提のnvmはそのままでは動きません。Windows向けに移植されたnvm-windowsや、クロスプラットフォーム対応のfnmのようなツールが同じ役割を果たします。どちらもインストール後はnvm install 22と同系統のコマンドでバージョンを切り替えられます。
MCPサーバーの実行にNode.jsが要ることがある
Claude Code本体がNode.js不要でも、接続するMCPサーバー側がNode.jsを要求するケースは珍しくありません。公式ドキュメントのMCPサーバー追加例を見ると、claude mcp add --transport stdio myserver -- npx serverのようにnpx経由でサーバーを起動する構成が数多く紹介されています。
npxはnpmに同梱されたコマンドで、実行にはNode.js環境が要ります。つまり「Claude Code自体はネイティブインストールでNode.js不要」という状態であっても、npx -y @example/mcp-serverのようなMCPサーバーを追加した瞬間、そのサーバーの起動にはローカルのNode.jsが必要になります。ネイティブインストーラーだけを使う予定でも、npx経由で起動するMCPサーバーを1つでも追加する予定があるなら、先にNode.jsを入れておくと接続時のつまずきを減らせます。MCPサーバーがうまく起動しないときは、Claude Codeのインストール方法ではなく、システムにNode.jsが入っているかを先に確認します。
npmインストール後にclaudeが起動しないときの切り分け
npmでインストールしたclaudeコマンドが動かないとき、原因をNode.jsのバージョンだと決めつけると回り道になることがあります。公式のトラブルシューティングによると、npmパッケージは@anthropic-ai/claude-code-darwin-arm64のようなプラットフォーム別パッケージとしてネイティブバイナリを取得し、postinstallスクリプトでそれをclaudeコマンドの位置に配置します。このダウンロードかpostinstallのどちらかが省略されると、claudeはプレースホルダーのままになり、macOS・Linuxでは次のエラーが出ます。
Error: claude native binary not installed.
Either postinstall did not run (--ignore-scripts, some pnpm configs)
or the platform-native optional dependency was not downloaded
(--omit=optional).
Run the postinstall manually (adjust path for local vs global install):
node node_modules/@anthropic-ai/claude-code/install.cjs
Or reinstall without --ignore-scripts / --omit=optional.このエラーはNode.jsのバージョンとは無関係に起こります。Node.js 22以上を使っていても、--ignore-scripts付きでインストールすればプレースホルダーのまま止まります。②のケースでは、メッセージが示す次のコマンドでpostinstallを手動実行できます。
node node_modules/@anthropic-ai/claude-code/install.cjspostinstall自体が環境的に実行できない場合は、node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjsがダウンロード済みのプラットフォームパッケージを見つけて起動します。ただし起動のたびに追加のNodeプロセスが1つ走るため、インストール後はNode.jsを使わないという原則の唯一の例外です。このwrapperがCould not find native binary packageと出す場合は、プラットフォームパッケージ自体が未取得なので、①のオプション依存関係を先に直します。
Windows版npmインストールではbin/claude.exeが同じプレースホルダー(シェルスクリプト)のままになるため、上記のエラーメッセージではなくPowerShellやCMDが「実行できないファイル」として弾く形でエラーが表れます。いずれの場合も、まずnode -vでバージョンを確認したうえで、Node.jsが要件を満たしているのにまだ動かないなら、オプション依存関係・postinstallスクリプトの設定を疑います。
まとめ
Node.jsの要否は、Claude Code本体の話とnpmインストールの話を分けて考えると整理できます。ネイティブインストーラー・Homebrew・WinGet・apt/dnf/apkのいずれで入れてもNode.jsは不要です。npmでインストール・アップグレードする場合だけNode.js 22以上が必要で、node -vで現在のバージョンを確認し、足りなければnvmなどで切り替えます。加えて、npx経由で起動するMCPサーバーを使う場合は、Claude Codeの要件とは別にNode.jsの実行環境が求められる点も覚えておくと、トラブル時の切り分けが早くなります。