問題の説明
OpenClawをインストールする際に、以下のようなエラーメッセージが表示されることがあります:
npm ERR! engine Unsupported engine
npm ERR! notsup Not compatible with your version of node/npm: openclaw@latest
npm ERR! notsup Required: {"node":">=22.0.0"}
npm ERR! notsup Actual: {"node":"18.17.1","npm":"9.6.7"}
または実行時:
SyntaxError: Unexpected token '??='
at wrapSafe (internal/modules/cjs/loader.js:915:16)
これらのエラーは同じ根本原因を示しています:Node.jsのバージョンがOpenClawの最低要件である22.0.0未満であるということです。OpenClawはネイティブWebSocket、import属性、新しいモジュール解決アルゴリズムなど、Node.js 22+でのみサポートされる多くの言語機能を使用しているため、古いバージョンでは実行できません。
診断手順
まず、現在インストールされているNode.jsのバージョンを確認します:
node -v
出力がv22.0.0未満(例:v18.17.1やv20.11.0)の場合、アップグレードが必要です。
npmバージョンもNode.js 22と互換性があることを確認してください:
npm -v
Node.js 22にはnpmバージョン10.x以上が付属しています。npmバージョンが10未満の場合もインストール時に問題が発生する可能性があります。
解決方法
方法1:nvmでバージョンを切り替える(推奨)
nvm(Node Version Manager)は複数のNode.jsバージョンを管理するための最適なツールです。まだインストールしていない場合は、先にインストールしてください。
Linux / macOS:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
Windows:
Windowsユーザーはnvm-windowsを使用してください。GitHub Releasesページからインストーラーをダウンロードしてください。
nvmをインストール後、Node.js 22をインストールして切り替えます:
nvm install 22
nvm use 22
nvm alias default 22
バージョンが切り替わったことを確認します:
node -v
# v22.x.x と表示されるはず
npm -v
# 10.x.x と表示されるはず
その後、OpenClawを再インストールします:
npm install -g openclaw
方法2:nvmの代わりにfnmを使用する
fnm(Fast Node Manager)はRustで書かれた高速なNode.jsバージョン管理ツールです:
# macOS / Linux
curl -fsSL https://fnm.vercel.app/install | bash
# Windows (PowerShell)
winget install Schniz.fnm
インストール後:
fnm install 22
fnm use 22
fnm default 22
方法3:最新LTSを直接ダウンロードしてインストール
複数のNode.jsバージョンを管理する必要がない場合は、Node.js公式サイトから22.x LTSインストーラーを直接ダウンロードして上書きインストールできます。
インストール後、新しいターミナルウィンドウを開いてバージョンを確認してください:
node -v
よくある落とし穴
システムに複数のNode.jsインストールが存在する
時々、システムに複数のNode.jsインストールパスが存在することがあります。以下のコマンドで実際に使用しているものを確認してください:
# Linux / macOS
which node
# Windows
where node
出力パスが期待するnvm管理のパスでない場合、PATH環境変数を確認し、nvmのパスがシステム組み込みのNode.jsパスより前にあることを確認してください。
Docker環境でのバージョン問題
OpenClawをDockerでデプロイする場合、DockerfileのベースイメージがNode.js 22を使用していることを確認してください:
FROM node:22-alpine
node:ltsタグは使用しないでください。LTSタグは時間の経過とともに異なるバージョンを指す可能性があります。メジャーバージョンを明示的に指定することでビルドの不整合を回避できます。
CI/CDパイプラインでのバージョン設定
GitHub Actionsでは、setup-nodeステップで正しいバージョンを指定してください:
- uses: actions/setup-node@v4
with:
node-version: '22'
インストール成功の確認
Node.jsのアップグレード後、以下のコマンドを実行してOpenClawが正常に動作することを確認します:
npm install -g openclaw
openclaw --version
openclaw doctor
openclaw doctorコマンドは、Node.jsバージョン、必要なシステム依存関係、設定ファイル~/.openclaw/openclaw.jsonの存在など、ランタイム環境を自動的にチェックします。すべてのチェックに合格すると、緑色の確認メッセージが表示されます。
アップグレード後も問題が発生する場合は、npmキャッシュをクリアして再インストールしてみてください:
npm cache clean --force
npm install -g openclaw