100s 带你了解 Bun 为什么这么火
1995 年, JavaScript 诞生,主要用于广告弹窗。
2009 年,Node.js 诞生,JS 可以写后端了。
然而这是罪恶的开始,之后 JS 发展出了世界上最复杂的工具链。
于是写一个 Web 项目,你需要 Node.js 作为运行环境,Npm 作为包管理器,Webpack 作为打包工具,Jest 作为测试,还要用 Babel 转译,还要写一大堆没人看懂的配置文件。
这样的痛苦想必你已经体会到了。
2021 年,Bun 说:“为什么不能在运行时就完成所有得事情呢?”
于是它火了。
Bun 是什么?
Bun 本质上是一个 JavaScript 运行时,类似于 Node.js,但极其注重性能。
为了实现高性能,Bun 的核心策略是将:
-
Node.js 的 C++ 替换成 Zig
-
Node.js 的 V8 引擎替换成 Safari 使用的 JavaScript Core
这确实让 Bun 取得了不错的性能测试成绩。
![]()
但 Bun 真正革命性的地方在于它不仅仅是一个运行时。
它取代了你的打包工具,于是你可以直接写 TypeScript 或 JavaScript,而不用做任何配置。
它取代了你的测试框架和包管理器,甚至内置数据库驱动程序,同时又保持了与 Node.js 生态的兼容性。
从此以后,你只用一个工具就可以完成所有任务。
当然直接说还是有些抽象,我们直接看代码吧。
Bun 的使用
安装 Bun:
curl -fsSL https://bun.sh/install | bash
创建新项目:
bun init
现在你已经可以编写 TypeScript 代码了。
现在我们搭建一个 Web 服务器,不需要 express,只需要:
const server = Bun.serve({
port: 3000,
routes: {
"/": () => new Response("Bun!"),
},
});
console.log(`Listening on ${server.url}`);
运行 bun run index.ts 你就可以直接看到效果。
如果你想操作数据库,直接写:
import { Database } from "bun:sqlite";
const db = new Database("./app.sqlite");
如果你想使用 Redis,直接写:
import { redis } from "bun";
// 设置 Key
await redis.set("greeting", "Hello from Bun!");
// 读取数据
const cachedDate = await redis.exists("greeting");
如果你需要安装包,直接运行:
# 安装速度比 npm 快 25 倍
bun install
如果你想写测试,直接写:
// 内置测试工具
import { test, expect } from "bun:test";
test("2 + 2 = 4", () => {
expect(2 + 2).toBe(4);
});
为什么要关注 Bun?
Bun 本身其实已经很火了。
2025 年底,Anthropic 收购 Bun,更是为 Bun 的发展添了一把柴。
Bun 现在已经普遍被用于 Claude Code 等工具、云平台上的 Serverless Functions 等,这预示着它正在成为 JavaScript 生态系统中的重要力量。
所以如果你正在学 JavaScript,或者想尝试新工具,Bun 值得一看。
即使现在不用,了解这个“未来趋势”也会让你对前端生态有更深的理解。
我是冴羽,10 年笔耕不辍,专注前端领域,更新了 10+ 系列、300+ 篇原创技术文章,翻译过 Svelte、Solid.js、TypeScript 文档,著有小册《Next.js 开发指南》、《Svelte 开发指南》、《Astro 实战指南》。
欢迎围观我的“网页版朋友圈”,关注我的公众号:冴羽(或搜索 yayujs),每天分享前端知识、AI 干货。