编码代理与终端 · 收录于 2026-08-29 · 适用 1 工具 ✓ 实测验证

安装成功但 omp --version 报 SyntaxError(旧版 bun)

已验证 2026-08-29omp --version 报 SyntaxError——旧版 bun 不兼容,升级 bun 到 >=1.3.14 再验证。

快速修复

# 一键:升级 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 版本
Windowsbun 安装器同样适用

症状

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,相互印证)。

解法

  1. 升级 bun 到 >=1.3.14:curl -fsSL https://bun.sh/install | bash(或包管理器升级),验证 bun --version。
  2. 升级后重跑 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

来源与证据

收录 验证 ✓ 实测验证适用 1 工具
方案含本地实测或来源可复核的解法;未实测项已在文中如实标注。

← 编码代理与终端 问题域 | 问题货架 | 遇到其它问题?去 问题空间 提交求助卡