Bun(实验性)
目标:用 Bun 运行本仓库(可选,不推荐用于 WhatsApp/Telegram),同时不偏离 pnpm 工作流。
⚠️ 不推荐用于 Gateway 运行时(WhatsApp/Telegram 存在 Bug)。生产环境请用 Node。
现状
- Bun 是一个可选的本地运行时,用于直接运行 TypeScript(
bun run …、bun --watch …)。 pnpm是默认的构建工具,仍然完全受支持(部分文档工具也依赖它)。- Bun 无法使用
pnpm-lock.yaml,会直接忽略它。
安装
默认方式:
bun install
注意:bun.lock/bun.lockb 已被 gitignore,不会造成仓库变动。如果你完全不想写 lockfile:
bun install --no-save
构建 / 测试(Bun)
bun run build
bun run vitest run
Bun 生命周期脚本(默认被阻止)
Bun 可能会阻止依赖的生命周期脚本,除非显式信任(bun pm untrusted / bun pm trust)。
对本仓库来说,常被阻止的脚本其实不是必需的:
@whiskeysockets/baileys的preinstall:检查 Node 主版本 >= 20(OpenClaw 默认使用 Node 24,仍兼容 Node 22 LTS,目前22.16+)。protobufjs的postinstall:输出关于不兼容版本方案的警告(不产生构建产物)。
如果确实遇到运行时问题需要这些脚本,手动信任即可:
bun pm trust @whiskeysockets/baileys protobufjs
注意事项
- 部分脚本仍硬编码使用 pnpm(如
docs:build、ui:*、protocol:check)。这些暂时还是通过 pnpm 运行。