快速修复
# 一键:升级 bun 到 >=1.3.14,再验证版本
curl -fsSL https://bun.sh/install | bash && bun --version && omp --version
你会遇到什么
bun install -g @oh-my-pi/pi-coding-agent 显示安装成功,但执行 omp --version 报 SyntaxError(或直接无声失败,无版本输出)。装上了却跑不了,而且报错还不提示版本不兼容。
本文路径:快速修复(30 秒一段命令)→ 一步步排查(可跳读)→ 原理与变体(症状/原因/证据)。赶时间直接跳到「快速修复」。
为什么会这样
package.json engines 要求 bun >=1.3.14(本市场实测实读 engines 字段确认);bun 1.3.11 及更早版本运行该包时解析新语法失败,报 SyntaxError 且不提示版本不兼容(来源:Qiita kai_kou,2026-08 检索;OrcaRouter 中文文档同标 bun >=1.3.14,相互印证)。
bun install -g 只负责“把包装进全局目录”(安装期),不负责“装完后这个包能不能跑”(运行期)——它是静态安装器,不是运行时。装的是 JS 代码,跑的时候才由 bun 运行时逐行解析执行;运行时版本太旧,遇到包代码里的新语法(新语法糖/新 API)直接解析失败。
SyntaxError 的诡异之处在于它不指向“版本”,只指向“第几行语法不认识”——如果包的入口文件用了新语法,老运行时在 cli.js 第一处新语法就崩,报错完全看不出是版本问题。所以“安装成功 ≠ 能运行”的检查顺序固定:bun --version 先验运行时(对照 engines 声明的版本线,如 >=1.3.14)→ 再 omp --version 验命令面。
反过来,无声失败(无任何输出)也是同一根因——入口在解析阶段就崩了,连打印版本的机会都没有。
| bun 版本 | omp --version 结果 |
|---|---|
| 1.3.11 及更早 | ❌ SyntaxError(实测:SyntaxError: Unexpected identifier 'u',cli.js:159:1) |
| ≥1.3.14(实测 1.4.0) | ✅ omp/18.0.9 正常 |
一步步来
1. 升级 bun — 必做
curl -fsSL https://bun.sh/install | bash
或包管理器升级;验证 bun --version ≥1.3.14。
2. 重跑版本命令 — 必做
omp --version
预期输出 omp/<版本>(实测 18.0.9)。
怎么确认修好了
版本输出正常(实测输出形态):
omp --version
→ omp/18.0.9(bun 1.4.0 实测)
升级前:bun 1.3.11 → SyntaxError: Unexpected identifier 'u'(实测复现,与 Qiita 症状一致)。
其它环境的表现
| 环境 | 说明 |
|---|---|
| bun <1.3.14 | 升级 bun 后再跑 |
| 包管理器升级 | brew/apt 等按 bun 官方方式 |
| 无声失败 | 无版本输出 = 同样根因,先查 bun 版本 |
| Windows | bun 安装器同样适用 |
症状
bun install -g @oh-my-pi/pi-coding-agent 显示安装成功,但执行 omp --version 报 SyntaxError(或直接无声失败,无版本输出)。
原因
package.json engines 要求 bun >=1.3.14(本市场实测实读 engines 字段确认);bun 1.3.11 及更早版本运行该包时解析新语法失败,报 SyntaxError 且不提示版本不兼容(来源:Qiita kai_kou,2026-08 检索;OrcaRouter 中文文档同标 bun >=1.3.14,相互印证)。
解法
- 升级 bun 到 >=1.3.14:
curl -fsSL https://bun.sh/install | bash(或包管理器升级),验证bun --version。 - 升级后重跑
omp --version确认输出omp/<版本>。
验证证据
- 本市场实测(2026-08-28,bun 1.4.0):本地项目安装
@oh-my-pi/pi-coding-agent@18.0.9后omp --version输出omp/18.0.9;package.json engines 实读为 {'bun': '>=1.3.14'}。 - 旧 bun 1.3.11 复现(2026-08-28 补完):bun 1.3.11 前置 PATH 执行
omp --version→SyntaxError: Unexpected identifier 'u'(cli.js:159:1),与 Qiita 症状一致;对照 bun 1.4.0 →omp/18.0.9正常(实测复现日志(2026-08-28))。
适用工具 (1)
本问题方案已挂到下列工具的方案页——从工具页也能回到这里,双向可达。
oh-my-pi来源与证据
← 编码代理与终端 问题域 | 问题货架 | 遇到其它问题?去 问题空间 提交求助卡