前端构建工具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
2
3
4
5
6
7
8
FROM oven/bun:latest

WORKDIR /app
COPY . .

RUN bun install

CMD ["bun", "run", "start"]

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 流程