目录
点击展开
Bun.js 入门指南:下一代 JavaScript 工具链
你是否曾对 Node.js 项目中缓慢的依赖安装、复杂的构建配置或漫长的测试运行感到沮丧?如果是这样,那么你一定要了解 Bun.js。Bun 是一个全新的、令人兴奋的 JavaScript 工具包,旨在提供一个更快、更简单、更高效的开发体验。
什么是 Bun?
Bun 不仅仅是一个 JavaScript 运行时,它是一个集多功能于一体的工具链,旨在彻底改变我们构建 JavaScript 应用的方式。它由 Zig 语言编写,并采用了 Apple 的 JavaScriptCore 引擎,这使得它拥有无与伦比的性能。
与传统的 Node.js 生态系统(你需要分别使用 npm/yarn/pnpm、Webpack/Vite/esbuild、Jest/Vitest 等工具)不同,Bun 将以下核心功能集成在了一起:
- JavaScript 运行时 (Runtime):像 Node.js 或 Deno 一样执行你的代码。
- 包管理器 (Package Manager):一个与 npm 高度兼容且速度极快的包管理器。
- 打包器 (Bundler):一个内置的高性能代码打包工具。
- 测试运行器 (Test Runner):一个内置的、与 Jest 语法兼容的测试框架。
为什么选择 Bun?
- 惊人的速度:这是 Bun 最引人注目的特点。无论是安装依赖、运行脚本还是执行测试,Bun 的速度都远超现有工具。例如,
bun install的速度可以比npm install快上几十倍。 - 开箱即用:Bun 原生支持 TypeScript 和 JSX,无需任何额外的配置或编译器。你可以直接运行
.ts或.tsx文件。 - 高度兼容性:Bun 的目标是成为 Node.js 的直接替代品 (drop-in replacement)。它实现了大量的 Node.js API(如
fs,path)和 CommonJS 模块系统 (require()),这意味着大多数现有的 Node.js 项目和 npm 包都可以在 Bun 中无缝运行。 - 一体化体验:拥有一个统一的工具可以简化开发流程,减少配置文件数量,并确保各个部分协同工作,从而降低项目的复杂性。
快速上手
1. 安装 Bun
在 macOS、Linux 或 WSL 上,你可以通过以下命令轻松安装 Bun:
curl -fsSL https://bun.sh/install | bash
安装完成后,根据提示将 Bun 的路径添加到你的 shell 配置文件中(如 .zshrc 或 .bashrc),然后重启终端或运行 source ~/.zshrc 使其生效。
2. 创建一个新项目
Bun 可以像 npm 一样初始化一个新项目:
# 创建一个新文件夹并进入
mkdir my-bun-app
cd my-bun-app
# 初始化项目
bun init -y
这个命令会为你生成一个 package.json、tsconfig.json 和一个入口文件 index.ts。
3. 运行你的第一个程序
index.ts 文件的内容很简单:
// index.ts
console.log("Hello via Bun!");
使用 bun run 来执行它:
bun run index.ts
你会立即在终端看到输出。注意,你无需安装 typescript 或 ts-node,Bun 原生就能处理!
4. 包管理
Bun 的包管理器是其一大亮点。它的命令与你熟悉的 npm 或 yarn 非常相似。
-
安装依赖: 假设你想添加
express框架。# 从 package.json 安装所有依赖 bun install # 添加一个新的依赖 bun add express # 添加一个开发依赖 bun add -d nodemon你会发现,即使是大型项目的依赖安装也只需要几秒钟。
-
移除依赖:
bun remove express
5. 运行脚本
你可以在 package.json 的 scripts 字段中定义任务,并使用 bun run 来执行它们。
// package.json
"scripts": {
"start": "bun run src/index.ts",
"dev": "bun --watch src/index.ts"
}
然后运行:
# 启动应用
bun start
# 以观察模式启动,文件变化时自动重启
bun run dev
6. 运行测试
Bun 内置了一个兼容 Jest 的测试运行器。创建一个名为 http.test.ts 的文件:
// http.test.ts
import { expect, test } from "bun:test";
test("2 + 2", () => {
expect(2 + 2).toBe(4);
});
然后直接运行 bun test:
bun test
Bun 会自动查找并运行你项目中的所有测试文件。
结语
Bun.js 为 JavaScript 和 TypeScript 开发带来了革命性的性能提升和无与伦比的开发体验。它通过将运行时、包管理器、打包器和测试器整合为一个统一、高效的工具,极大地简化了现代 Web 开发的复杂性。
虽然 Bun 仍然是一个相对年轻的项目,但它的发展速度和社区热情都预示着它光明的未来。无论你是想加速现有项目的工作流,还是开启一个全新的项目,都强烈建议你尝试一下 Bun,感受它带来的“飞一般”的感觉!