前端构建工具Bun
Bun 是一个 现代 JavaScript/TypeScript 运行时 + 工具链一体化平台,由 Oven.sh 开发。
| 能力 | 传统方案 | Bun 替代 |
|---|---|---|
| JS 运行时 | Node.js | Bun |
| 包管理 | npm / yarn / pnpm | Bun |
| 构建工具 | webpack / vite | Bun (内置 bundler) |
| 测试框架 | jest / vitest | Bun test |
1.核心设计理念
- 性能优先(基于 Zig + JavaScriptCore)
- 一体化工具链(All-in-One)
- 极简开发体验(零配置优先)
2. Bun 架构与能力
2.1 架构图
flowchart TD
A[Bun Runtime] --> B[JS Engine: JavaScriptCore]
A --> C[Package Manager]
A --> D[Bundler]
A --> E[Test Runner]
A --> F[Transpiler TS/JSX]
C --> G[node_modules / bun.lockb]
D --> H[打包输出]
E --> I[测试报告]
2.2 核心模块解析
(1)Runtime(运行时)
- 兼容 Node.js API(部分)
- 内置 Web API(fetch / WebSocket / crypto)
(2)Package Manager
- 安装依赖速度极快(并发 + 缓存)
- lock 文件:
bun.lockb(二进制格式)
(3)Bundler(构建器)
原生支持:
- TypeScript
- JSX / TSX
无需额外 loader / plugin
(4)Test Runner
- 内置
bun test - 类似 Jest API
3. 安装与环境准备
3.1 安装(macOS / Linux)
1 | curl -fsSL https://bun.sh/install | bash |
验证:
1 | bun --version |
3.2 Docker 环境
1 | FROM oven/bun:latest |
4. 入门实战
4.1 初始化项目
1 | bun init |
生成:
package.json
bun.lockb
index.ts
4.2 运行代码
1 | bun run index.ts |
或:
1 | bun index.ts |
4.3 安装依赖
1 | bun add axios |
开发依赖:
1 | bun add -d typescript |
删除依赖:
1 | bun remove axios |
总结
Bun 的本质是:
“重新定义 Node.js 工具链的高性能一体化替代方案”
关键价值:
- 减少工具碎片化
- 提升开发与构建效率
- 简化 DevOps 流程