Node.js版本的重要性
OpenClaw要求Node.js 22或更高版本。这不是一个可选的建议,而是硬性要求——低于22的版本会导致OpenClaw无法启动或出现不可预期的错误。Node.js 22引入了许多OpenClaw依赖的特性,包括改进的ESM支持、原生WebSocket API和性能优化。
同时需要特别注意:虽然Bun作为Node.js替代品近年来发展迅速,但OpenClaw官方不建议使用Bun运行,因为在处理WhatsApp和Telegram的WebSocket连接时存在已知兼容性问题。
nvm(Node Version Manager)是管理多个Node.js版本的最佳工具,它让你可以在不同版本间自由切换,而不会影响系统全局环境。
安装nvm
macOS和Linux
在macOS和Linux上安装nvm非常简单:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
安装脚本会自动将nvm加载命令添加到你的shell配置文件(~/.bashrc、~/.zshrc等)。安装完成后,重新加载shell:
source ~/.bashrc
如果你使用的是zsh(macOS默认shell):
source ~/.zshrc
验证nvm安装成功:
nvm --version
Windows(WSL2)
OpenClaw在Windows上推荐通过WSL2运行。在WSL2的Ubuntu环境中,nvm的安装方式与Linux相同:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
如果你使用原生Windows环境,可以考虑使用nvm-windows(https://github.com/coreybutler/nvm-windows),但强烈建议使用WSL2以获得最佳兼容性。
安装Node.js 22
使用nvm安装最新的Node.js 22 LTS版本:
nvm install 22
nvm会自动下载、编译(如有必要)并安装指定版本。安装完成后,自动切换到该版本:
node --version
确认输出为v22.x.x。
设为默认版本
将Node.js 22设为nvm的默认版本,这样每次打开新终端都会自动使用:
nvm alias default 22
验证默认版本设置:
nvm current
安装OpenClaw
Node.js环境准备好后,就可以安装OpenClaw了。
方式一:npm全局安装
npm install -g openclaw@latest
方式二:官方安装脚本
curl -fsSL https://openclaw.ai/install.sh | bash
两种方式都会将OpenClaw安装为全局命令行工具。验证安装:
openclaw --version
初始化OpenClaw
首次安装后,运行引导程序完成配置:
openclaw onboard --install-daemon
引导程序会引导你完成以下步骤:
- 配置AI模型提供商(如OpenAI、Anthropic等)的API密钥
- 选择并连接聊天平台(WhatsApp、Telegram、Discord等)
- 安装后台守护进程(macOS上为LaunchAgent,Linux上为systemd服务)
所有配置保存在~/.openclaw/openclaw.json文件中。
安装后验证
运行OpenClaw内置的诊断工具检查环境是否正确配置:
openclaw doctor
此命令会检查:
- Node.js版本是否满足22+要求
- OpenClaw配置文件是否完整
- 各聊天平台连接是否正常
- 网络连通性
所有检查项通过后,启动OpenClaw:
openclaw start
或者打开管理面板:
openclaw dashboard
nvm日常使用技巧
查看已安装版本
nvm ls
查看可用远程版本
nvm ls-remote --lts
切换版本
nvm use 22
项目级版本锁定
在你的项目目录中创建.nvmrc文件,锁定Node.js版本:
echo "22" > .nvmrc
之后在项目目录中只需运行nvm use,nvm会自动读取.nvmrc并切换到指定版本。
自动切换版本
在~/.bashrc或~/.zshrc中添加以下脚本,可以在进入项目目录时自动切换Node.js版本:
autoload -U add-zsh-hook
load-nvmrc() {
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" = "N/A" ]; then
nvm install
elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
nvm use
fi
fi
}
add-zsh-hook chdir load-nvmrc
load-nvmrc
升级Node.js版本
当Node.js发布新版本时,可以通过nvm轻松升级:
nvm install 22 --reinstall-packages-from=current
--reinstall-packages-from=current参数会自动将当前版本全局安装的npm包(包括OpenClaw)迁移到新版本。
升级后验证OpenClaw仍然正常:
openclaw --version
openclaw doctor
卸载旧版本
升级后可以清理不再需要的旧版本:
nvm uninstall 20
常见问题
nvm命令未找到
确保shell配置文件中包含nvm加载脚本。检查~/.bashrc或~/.zshrc中是否有以下内容:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
全局npm包在切换版本后消失
nvm的每个Node.js版本都有独立的全局包目录。切换版本后需要重新安装全局包,或者使用--reinstall-packages-from参数在安装时自动迁移。
sudo npm install失败
使用nvm管理的Node.js不需要也不应该使用sudo。如果遇到权限问题,检查是否误用了系统级Node.js。运行which node确认路径指向nvm目录(类似~/.nvm/versions/node/v22.x.x/bin/node)。
总结
nvm为OpenClaw的运行环境管理提供了灵活而可靠的方案。通过nvm,你可以轻松安装、切换和管理Node.js版本,确保OpenClaw始终运行在兼容的Node.js 22+环境中。无论是开发调试还是生产部署,nvm都是Node.js版本管理的最佳实践。