“再不给CI/CD减肥,下季度的预算就要被运维吃光了。”
Bun 2.0 把这句话变成了真事。
上周,一家做SaaS的小团队把20分钟的测试流水线直接压到75秒,省下的不只是电费,还有工程师的耐心。
很多人以为 Bun 只是又一个“更快的Node”,其实它干的是把包管理、测试、构建、运行四条流水线塞进同一个二进制里。
不用再倒腾 jest.config、webpack.config、babel.config,也不用等 npminstall 先下载半个互联网。
速度到底怎么来的?
官方说冷启动比 Node 快 10 倍,听着像吹牛。
拆开看就明白:JavaScriptCore 的启动本来就比 V8 轻,再加上 Zig写的底层,少了层层胶水代码。
最离谱的是测试,Jest 跑 1 万条用例要 4 分钟,Bun 只用 2.4秒——不是优化,是直接换了引擎。
有人担心兼容性。
实测把 Next.js 12 的老项目直接 `bundev`,没改一行配置就跑起来,连自定义的 Babel 插件都没报错。
npm、yarn、pnpm 的锁文件也能一键吃进去,迁移成本基本等于零。
但 Bun 也不是万能药。
Windows 版本还在打磨,装依赖时偶尔会把路径里的反斜杠认成转义符;Node的某些冷门 C++ 扩展依旧跑不动。
团队把这些问题都贴在 GitHub 上,进度条每天都在往前蹭一点。
对比 Vite 和 esbuild 就更直观。
Vite 像一把瑞士军刀,前端场景下插件又多又成熟;esbuild则是纯构建的短跑冠军,只做打包,不做别的。
Bun 的思路是“我全都要”,把短跑、长跑、接力赛全塞进同一条赛道。
对于全栈项目,一次配置就能前后端一起跑,确实省心。
真正让人心动的是可执行文件。
`bun build --compile` 能把整个 Node项目打成单个二进制,扔到服务器就能跑,再也不用纠结容器里有没有装对 Node版本。
对做 CLI 工具的团队来说,这一步直接把发布流程从“写Dockerfile”降级成“拖一个文件”。
当然,生态还在追赶。
npm 上的 200 多万包不可能一夜迁移,Bun现在的策略是“能跑就跑,跑不了就回退到 Node”。
好在大部分业务代码并不依赖那些冷门 C++ 扩展,日常 CRUD项目基本无痛。
一句话总结:如果项目里已经有一堆脚本、一堆配置、一堆等待时间,Bun 2.0就像一把剪刀,把线头全剪掉。
它未必会干掉谁,但确实让“工具链”这三个字听起来不再吓人。