Bun 速查表
Bun 是一个超快速的全能 JavaScript 运行时、打包器和包管理器。使用 JavaScriptCore 引擎(而非 V8),目标是替代 Node.js、npm、npx 和 esbuild 等多个工具,让 JavaScript 工具链归一。
快速开始
``bash
# 运行脚本
bun run index.ts
# 监听模式——文件变更自动重启 bun run --watch index.ts
# 热替换模式——无需重启 bun --hot server.ts
# 启动开发模式(来自 package.json) bun dev
# 安装依赖 bun install
# 添加包 bun add zod
# 运行一次性 npm 包 bun x cowsay 'hello bun'
# 运行测试
bun test
`
安装与设置
`bash
bun --version # 查看版本
bun upgrade # 升级到最新
bun --help # 查看帮助
`
基础使用
`bash
bun run index.ts # 运行文件
bun run --watch index.ts # 监听模式(自动重启)
bun --hot server.ts # 热重载(无需重启)
bun --smol index.ts # 低内存模式
bun . # 自动检测入口点
bun dev # 运行 dev 脚本
bun start # 运行 start 脚本
`
包管理
`bash
bun install # 安装所有依赖
bun add zod # 添加依赖
bun add -d @types/bun # 添加开发依赖
bun add --exact zod@3.23.0 # 添加精确版本
bun remove zod # 移除依赖
bun update # 更新所有依赖
bun pm cache # 查看/清理缓存
bun pm ls # 列出已安装依赖
`
测试与调试
`bash
bun test # 运行所有测试
bun test --watch # 监听模式
bun test --coverage # 生成覆盖率报告
bun test --bail # 首次失败即停止
bun test --timeout 10000 # 每个测试超时(毫秒)
`
打包构建
`bash
bun build ./src/index.ts --outdir ./dist # 打包为单文件
bun build --target bun ./src/index.ts --outdir ./dist # 指定 Bun 目标
bun build --minify ./src/index.ts --outdir ./dist # 压缩输出
bun build --splitting ./src/pages/*.tsx --outdir ./dist # 代码分割
bun build --sourcemap=external ./src/index.ts --outdir ./dist # 外部 SourceMap
`
高级功能
`bash
bun x cowsay 'hello' # 运行 npm 包(无需安装)
bun create next-app # 从模板创建项目
bun init # 初始化新项目
bun link # 注册本地包到全局
bun patch lodash # 修补已安装的 npm 包
bun publish # 发布到 npm
bun fig # 生成 Fig 自动补全规范
`
常见问题
### 如何配置 Bun?
在项目根目录创建 bunfig.toml(~/.bunfig.toml 也同样有效)。示例:
`toml
[install]
cache = true
production = false
frozenLockfile = false
registry = "https://registry.npmjs.org/"
[test]
preload = "./test/setup.ts"
`
### bun.lock 是如何工作的?
Bun 使用二进制 lockfile 格式(bun.lock)而非 JSON。解析速度更快,磁盘占用更小。可以通过插件转换为 package-lock.json。建议提交到版本控制。要重新生成:删除 node_modules 和 bun.lock,然后运行 bun install。
### Bun 如何处理环境变量?
Bun 自动加载 .env 文件——无需 dotenv。它会读取 .env、.env.local、.env.production(根据 NODE_ENV 决定)。通过 process.env 访问:
`typescript
const db = process.env.DATABASE_URL;
`
### 能在现有 Node.js 项目中使用 Bun 吗?
可以!在任何 Node.js 项目中运行 bun install 即可替代 npm/yarn。大多数项目可以直接使用 bun run dev / bun run build`,因为 Bun 支持 package.json 脚本且兼容 Node.js API。部分项目可能需要针对边缘情况的 Node.js 内部 API 做少量调整。
安装升级(3)
| 命令 | 难度 | ||
|---|---|---|---|
bun --version显示 Bun 版本号 | 基础 | bun --version | |
bun upgrade升级 Bun 到最新版本 | 基础 | bun upgrade | |
bun --help显示 Bun 帮助信息 | 基础 | bun --help |
基础使用(7)
| 命令 | 难度 | ||
|---|---|---|---|
bun run运行 JavaScript/TypeScript 文件 | 基础 | bun run index.ts | |
bun run --watch监听模式,文件变更自动重启 | 中级 | bun run --watch index.ts | |
bun --hot热替换模式,修改后无需重启即可生效 | 中级 | bun --hot server.ts | |
bun --smol低内存模式(适合资源受限环境) | 中级 | bun --smol index.ts | |
bun .自动检测并运行当前目录包的入口点 | 基础 | bun . | |
bun dev启动开发模式(监听+热重载) | 基础 | bun dev | |
bun start运行 package.json 中定义的 start 脚本 | 基础 | bun start |
包管理(9)
| 命令 | 难度 | ||
|---|---|---|---|
bun install根据 package.json 安装所有依赖 | 基础 | bun install | |
bun add添加依赖包到项目 | 基础 | bun add zod | |
bun add -d添加开发依赖 | 基础 | bun add -d @types/bun | |
bun add --exact添加依赖并锁定精确版本 | 中级 | bun add --exact zod@3.23.0 | |
bun remove移除依赖包 | 基础 | bun remove zod | |
bun update将所有依赖更新到最新兼容版本 | 中级 | bun update | |
bun pm cache查看或清理缓存目录 | 中级 | bun pm cache | |
bun pm ls列出已安装的直接依赖 | 中级 | bun pm ls | |
bun bun.lock查看生成的 lock 文件(二进制格式) | 高级 | cat bun.lock |
测试调试(5)
| 命令 | 难度 | ||
|---|---|---|---|
bun test运行测试(兼容 Jest 和 Node 测试) | 基础 | bun test | |
bun test --watch监听模式运行测试 | 中级 | bun test --watch | |
bun test --coverage运行测试并生成覆盖率报告 | 中级 | bun test --coverage | |
bun test --bail首次失败即停止测试 | 基础 | bun test --bail | |
bun test --timeout 10000设置每个测试的超时时间(毫秒) | 中级 | bun test --timeout 10000 |
打包构建(5)
| 命令 | 难度 | ||
|---|---|---|---|
bun build打包 JavaScript/TypeScript 为单文件 | 中级 | bun build ./src/index.ts --outdir ./dist | |
bun build --target bun打包为 Bun 本地运行时目标 | 中级 | bun build --target bun ./src/index.ts --outdir ./dist | |
bun build --minify打包并压缩代码 | 中级 | bun build --minify ./src/index.ts --outdir ./dist | |
bun build --splitting启用代码分割(多入口) | 高级 | bun build --splitting ./src/pages/*.tsx --outdir ./dist | |
bun build --sourcemap=external打包并生成外部 SourceMap | 中级 | bun build --sourcemap=external ./src/index.ts --outdir ./dist |
高级功能(7)
| 命令 | 难度 | ||
|---|---|---|---|
bun x运行 npm 包(无需安装) | 基础 | bun x cowsay 'hello' | |
bun create从模板创建新项目 | 基础 | bun create next-app | |
bun init初始化新项目并生成 package.json | 基础 | bun init | |
bun link注册本地包用于全局链接 | 中级 | bun link | |
bun patch修补已安装的 npm 包 | 高级 | bun patch lodash | |
bun publish发布包到 npm 注册表 | 中级 | bun publish | |
bun fig生成 Fig 自动补全规范 | 高级 | bun fig |