更快更强的 JavaScript 运行时:Bun 入门与实践指南
还在忍受
npm install
的漫长等待?Bun 正以惊人的速度重塑 JavaScript 工具链!
在追求极致效率的前端开发领域,Bun 已迅速崛起为一股不可忽视的力量。作为一款集运行时、包管理器和构建工具于一身的利器,Bun 凭借其 Zig 编写的底层架构和高度优化的性能,正在改变开发者的工作流。

🚀 一、为什么选择 Bun?
- 闪电般的速度: 启动速度远超 Node.js,依赖安装比
npm
/yarn
/pnpm
快数个数量级。 - 一体化工具链: 整合运行时、包管理 (
bun install
)、构建打包 (bun build
)、测试运行器 (bun test
)、脚本运行 (bun run
)。 - Node.js 高度兼容: 原生支持
package.json
、node_modules
结构及绝大部分 Node.js API 和模块。 - 内置 TypeScript & JSX: 开箱即用,无需额外配置或编译步骤。
- 精简高效: 单一可执行文件 (
bun
),安装便捷。
📦 二、安装 Bun (超简单)
bash
# 使用 curl (macOS, Linux, WSL)
curl -fsSL https://bun.sh/install | bash
# 使用 npm
npm install -g bun
# 使用 Homebrew (macOS)
brew tap oven-sh/bun
brew install bun
# Windows 原生支持 (实验性) 或强烈推荐使用 WSL2
powershell -c "irm bun.sh/install.ps1 | iex"
安装后,终端输入 bun --version
验证安装成功。
🛠 三、核心功能使用详解
1. 创建新项目 (替代 create-react-app
/ vite create
等)
bash
# 使用 Bun 创建 Next.js 项目
bun create next ./my-app
# 使用 Bun 创建 React 应用 (基于 Vite)
bun create vite my-react-app --template react-ts
# 初始化一个全新的空项目 (类似 npm init -y)
bun init -y
2. 依赖管理 (bun install
- 快到飞起)
bash
# 安装所有依赖 (体验极速!)
bun install
# 添加生产依赖
bun add react react-dom
# 添加开发依赖
bun add -d typescript @types/node eslint
# 移除依赖
bun remove lodash
# 更新依赖
bun update
与 npm/yarn/pnpm 命令对比:
功能 | Bun 命令 | npm 命令 | Yarn 命令 | pnpm 命令 | 速度优势 |
---|---|---|---|---|---|
安装依赖 | bun install |
npm install |
yarn |
pnpm install |
⚡⚡⚡⚡⚡ |
添加生产依赖 | bun add |
npm install |
yarn add |
pnpm add |
⚡⚡⚡⚡⚡ |
添加开发依赖 | bun add -d |
npm install -D |
yarn add -D |
pnpm add -D |
⚡⚡⚡⚡⚡ |
移除依赖 | bun remove |
npm uninstall |
yarn remove |
pnpm remove |
⚡⚡⚡⚡⚡ |
更新依赖 | bun update |
npm update |
yarn upgrade |
pnpm update |
⚡⚡⚡⚡ |
全局安装 | bun add -g |
npm install -g |
yarn global add |
pnpm add -g |
⚡⚡⚡⚡⚡ |
关键点:
- 首次安装时,Bun 会生成一个高效的
bun.lockb
二进制锁文件。 node_modules
结构经过优化,利用了硬链接和符号链接。- 依赖解析和下载并行化,缓存机制极其高效。
3. 运行项目脚本 (bun run
)
bash
# 运行 package.json 中定义的 "start" 脚本
bun run start
# Bun 为常用脚本提供了更短的别名 (无需加 `run`)
bun dev # 相当于 `bun run dev`
bun start # 相当于 `bun run start`
bun test # 相当于 `bun run test` (或直接使用 `bun test` 命令)
# 运行任意命令/工具 (替代 npx)
bun run your-custom-script
bunx cowsay "Hello, Bun!" # 直接运行 cowsay,无需事先安装
4. 环境变量管理 (bun env
)
bash
# 打印当前环境变量
bun env
# 运行脚本并加载 .env 文件
bun --env-file .env.local run start
5. 执行文件/脚本
bash
# 运行 JavaScript/TypeScript/JSX 文件 (替代 node)
bun index.ts
bun ./path/to/your-script.jsx
# 作为 shebang 脚本解释器
#!/usr/bin/env bun
console.log('Hello from a Bun script!');
6. 内置打包工具 (bun build
)
bash
# 将入口文件打包到 ./out 目录
bun build ./index.tsx --outdir ./out
# 打包成单文件
bun build ./index.ts --outfile ./bundle.js
# 常用选项
bun build ./input.tsx \
--outdir ./build \
--minify \ # 压缩代码
--sourcemap \ # 生成 sourcemap
--target browser # 指定目标环境 (node, browser)
7. 内置测试运行器 (bun test
)
bash
# 运行测试 (默认查找 test/ spec/ 目录下文件,或带 .test / .spec 后缀的文件)
bun test
# 编写测试 (兼容 Jest 风格)
import { test, expect } from "bun:test";
test('2 + 2', () => {
expect(2 + 2).toBe(4);
});
test('异步示例', async () => {
const data = await fetchData();
expect(data).toEqual({ success: true });
});
🚀 四、Bun 优化工作流小技巧
-
升级 Bun: 保持最新以获得性能改进和新特性。
bashbun upgrade
-
利用
bun repl
: 快速进入交互式 REPL 环境测试代码片段。bashbun repl > 1 + 1 2 > const fs = require('fs'); fs.existsSync('/etc/hosts'); true
-
探索
bun
命令的更多选项: 使用bun --help
或bun
--help` 查看详细文档。
⚠ 五、注意事项与当前限制
- 原生模块 (
*.node
): 支持仍在快速演进,部分复杂原生模块可能存在兼容性问题。 - Node.js API 覆盖度: 虽然兼容性极高,但一些非常边缘或新引入的 Node.js API 可能尚未完全实现。
- Windows 原生支持: 正在积极开发中,目前最稳定体验在 WSL2 内。
- 生态系统成熟度: 核心非常稳定,但部分围绕 Bun 的特定插件/工具生态仍在发展中。
💡 结语
Bun 不仅仅是一个更快的包管理器,它代表了一种对 JavaScript 工具链效率的重新思考。其一体化设计、极致速度和优秀兼容性,使其成为现代 Web 开发中极具吸引力的选择。
立即尝试: 在你的下一个新项目或现有项目(尤其是依赖安装耗时长或启动慢的项目)中,尝试引入 bun install
或使用 bun run
来执行脚本,亲身感受性能提升!前端开发的速度革命,或许就从今天开始。