oven-sh/bun
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
github.com · oven-sh/bun
oven-sh/bun
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
Bun 是由 Oven 维护的一体化 JavaScript/TypeScript 工具链,以单个可执行文件 bun 交付。其核心是 Bun 运行时——用 Zig 编写、基于 JavaScriptCore,定位为 Node.js 的 drop-in 替代,显著降低启动耗时与内存占用。同一 CLI 还内置兼容 npm 的包管理器、测试运行器、脚本执行器与打包器,让开发、安装、测试与构建尽量收敛到一条命令线。
bun run index.tsxbun install、bun test、bun run、bunx 覆盖依赖安装、测试、脚本与一次性包执行node:* 模块、CommonJS/ESM 解析与 npm 生态兼容,可在多数现有 Node 项目中低改动接入Bun.build 打包前端与全栈资源;Bun.serve 提供 HTTP/WebSocket 路由与热更新bun:sqlite、Bun.sql(PostgreSQL)、Bun.redis、Bun.s3 等,减少常见后端场景的额外依赖若你厌倦「Node + npm/pnpm + Jest/Vitest + esbuild」的多工具拼装,Bun 把运行时与日常开发命令收进一个二进制,安装与 CI 缓存更简单,本地反馈通常更快。对全栈 TypeScript 团队,从 bun init 到 bun test 再到 bun build 可保持统一工具链;对已有 Node 项目,可先替换 npm install 或 node 启动路径做渐进迁移,在兼容边界内换取速度与简化配置。代价是部分 Node 原生模块、边缘 API 与企业级 LTS 承诺仍不如 Node.js 成熟,生产落地需对照 Node.js 兼容文档 验证。
node:* API 需在目标环境实测,不宜假设 100% 兼容。install 与测试反馈、愿意在兼容范围内尝试 Node 替代运行时的前端与后端工程师。方式一:官方安装脚本(推荐)
curl -fsSL https://bun.com/install | bashWindows(PowerShell)
powershell -c "irm bun.sh/install.ps1 | iex"其他方式
# npm 全局安装npm install -g bun
# Homebrew(macOS)brew tap oven-sh/bunbrew install bun
# Dockerdocker pull oven/bundocker run --rm --init --ulimit memlock=-1:-1 oven/bun升级至最新稳定版:
bun upgrade# 验证 CLIbun --version
# 新建项目(交互式)bun init
# 或在现有 package.json 项目中安装依赖bun install
# 运行入口或 package.json 脚本bun run index.tsbun run startbun --version # 应输出版本号bun test # 若有测试文件,应执行测试套件bun run index.tsx # TypeScript/JSX 应能直接运行确认 ~/.bun/bin(或安装脚本提示的路径)已加入 PATH,新开终端后 which bun 可找到可执行文件。
node:* 模块、Worker 行为或原生 addon 可能与 Node 不一致,迁移前在 staging 跑通核心路径。bun upgrade --canary 跟踪 main 最新提交,适合尝鲜,生产环境建议锁定稳定版。