OpenClaw 火了之后,每天后台都会收到一堆同样的问题——
"老师,我按教程装了,为什么跑不起来?"
"报错SyntaxError: Unexpected token,怎么办?"
"Windows 上安装死活失败,我快放弃了……"
这篇文章把我自己踩过、以及社区里问得最多的 5 个高频报错,逐一给你说清楚。照着来,99% 的安装问题都能解决。
报错一:SyntaxError: Unexpected token 或 Cannot use import statement
现象
运行 openclaw start 后,终端输出类似:
SyntaxError: Unexpected token '.'
at wrapSafe (internal/modules/cjs/loader.js:915:16)
根本原因
你的 Node.js 版本太低了。
OpenClaw 使用了 Optional Chaining(?.)、Top-level await、native fetch 等现代 JS 特性,要求 Node.js v22 或以上。很多用户的电脑上装的是 Node 18 或 20,就会报这个错。
解决方案
第一步:检查当前 Node 版本
node -v
如果输出 v18.x.x 或 v20.x.x,就需要升级。
第二步:升级 Node.js
推荐使用 nvm(Node Version Manager)管理版本,不容易出问题:
# 安装 nvm(如果没有)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
# 安装 Node 22
nvm install 22
# 切换到 Node 22
nvm use 22
# 验证
node -v # 应该显示 v22.x.x
第三步:重新安装 OpenClaw
npm install -g openclaw
openclaw start
注意:如果你用 Homebrew 装的 Node,运行
brew upgrade node也可以,但要确认版本是 v22+。
报错二:Windows 用户 openclaw: command not found 或安装卡住
现象
在 PowerShell 或 CMD 中运行安装命令,要么卡住不动,要么报 command not found。
根本原因
OpenClaw 不支持原生 Windows 环境(PowerShell/CMD),必须在 WSL2(Windows Subsystem for Linux) 中运行。
很多教程省略了这一步,导致大量 Windows 用户踩坑。
解决方案
第一步:安装 WSL2
以管理员身份打开 PowerShell,运行:
wsl --install
安装完成后重启电脑。
第二步:打开 Ubuntu 终端
重启后,在开始菜单找到 "Ubuntu",打开它(第一次会要求设置用户名和密码)。
第三步:在 Ubuntu 中安装 Node.js 和 OpenClaw
# 更新包管理器
sudo apt update && sudo apt upgrade -y
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
# 安装 Node 22
nvm install 22
nvm use 22
# 安装 OpenClaw
npm install -g openclaw
# 启动
openclaw start
提示:以后每次使用 OpenClaw,都要在 WSL2 的 Ubuntu 终端里操作,不要用 PowerShell。
报错三:Gateway failed to start / Parse error in openclaw.json
现象
启动时报错:
[Gateway] ✗ Failed to start
Parse error: Unexpected token } in JSON at position 312
根本原因
配置文件 ~/.openclaw/openclaw.json 格式有误,通常是因为手动编辑时多了逗号、少了引号,或者直接复制粘贴时带入了中文引号。
解决方案
第一步:找到配置文件
cat ~/.openclaw/openclaw.json
第二步:用 JSON 校验工具检查
把文件内容复制到 jsonlint.com 在线校验,它会直接告诉你哪一行有问题。
常见错误示例:
// 错误:最后一个配置项后面多了逗号
{
"model": "claude-3-5-sonnet",
"memory": true,
}
// 正确
{
"model": "claude-3-5-sonnet",
"memory": true
}
第三步:修复后重启
openclaw restart
预防措施:建议用 VS Code 打开 JSON 文件,有语法高亮和自动格式化,比直接用 vim 安全多了。
报错四:Dashboard 连接失败 / 打开 localhost:18789 显示无法连接
现象
运行 openclaw start 后看似正常,但打开 http://localhost:18789 提示"无法连接到此网站"。
根本原因
常见原因有两个:
- Gateway 没有正常启动(通常是端口被占用)
- Gateway Token 不匹配
解决方案
排查1:检查服务是否真的在运行
openclaw status
如果显示 Gateway 未运行,查看日志定位具体原因:
openclaw logs
排查2:检查端口是否被占用
# 检查 18789 端口占用情况
lsof -i :18789
如果有其他程序占用,先关掉它再启动 OpenClaw。
排查3:Token 不匹配问题
如果日志显示 401 Unauthorized,是 Token 配置问题:
# 查看当前 token
openclaw config show | grep token
# 重新生成 token
openclaw config reset-token
openclaw restart
报错五:Docker 部署时容器崩溃,退出码 137
现象
使用 Docker 部署 OpenClaw,容器不断重启,查看日志显示 Killed 或退出码为 137。
根本原因
内存不足(OOM)。OpenClaw 容器至少需要 2GB 内存,如果你的服务器或 Docker Desktop 分配的内存少于这个值,就会被系统强制杀掉(OOM Kill)。
解决方案
Docker Desktop 用户(macOS/Windows):
- 打开 Docker Desktop → Settings → Resources
- 将 Memory 调整到 4GB 及以上
- 点击 Apply & Restart
Linux 服务器用户:
检查服务器内存:
free -h
如果内存确实不够,可以在 docker-compose.yml 中设置内存限制:
services:
openclaw:
image: openclaw/openclaw:latest
mem_limit: 2g
mem_reservation: 1g
排查路线图(建议收藏)
遇到 OpenClaw 启动失败,按以下路径排查:
- 报 SyntaxError → 检查 Node.js 版本(需要 v22+)
- Windows 安装失败 → 必须用 WSL2
- Gateway 启动失败 → 先看日志
openclaw logs,再查 JSON 格式、端口占用 - Dashboard 打不开 → 检查服务状态、Token 是否匹配
- Docker 容器崩溃 → 检查内存(需要 2GB+)
还没解决?
如果以上方法都试过了还是不行,可以:
- 在评论区留言,描述你的报错信息
- 查看 OpenClaw 官方 FAQ 文档
- 去 GitHub Issues 搜索相似问题
本文持续更新,如果你遇到了其他报错,欢迎在评论区告知,我会第一时间补充进来。
