4.7 KiB
4.7 KiB
管理后台 - Bun 使用指南
🥖 Bun 简介
Bun 是一个极速的 JavaScript 运行时和包管理器,专为现代前端开发而设计。
主要优势
- ⚡ 极速安装: 比 npm 快 2-3 倍
- 🔧 内置工具: 打包器、测试运行器、转译器
- 🎯 高兼容性: 100% 兼容 Node.js API
- 💾 内存效率: 更低的内存占用
- 📦 原生支持: TypeScript、JSX 无需配置
🚀 快速开始
安装 Bun
# macOS/Linux
curl -fsSL https://bun.sh/install | bash
# Windows (使用 WSL)
curl -fsSL https://bun.sh/install | bash
# 验证安装
bun --version
项目初始化
# 进入项目目录
cd admin/
# 安装依赖
bun install
# 启动开发服务器
bun run dev
📋 常用命令
包管理
# 安装所有依赖
bun install
# 安装特定包
bun add react
bun add -d typescript # 开发依赖
# 移除包
bun remove package-name
# 更新依赖
bun update
# 清理缓存
bun pm cache rm
脚本运行
# 开发服务器
bun run dev
bun dev # 简写
# 构建生产版本
bun run build
# 类型检查
bun run type-check
# 代码检查
bun run lint
# 测试
bun run test
bun test # 简写
高级功能
# 直接运行 TypeScript 文件
bun run src/index.ts
# 安装并运行包 (类似 npx)
bunx create-react-app my-app
bunx vite
# 查看依赖树
bun pm ls
# 安全审计
bun audit
🔧 配置文件
package.json 配置
{
"name": "photography-admin",
"packageManager": "bun@latest",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview"
}
}
bun.lockb 文件
- Bun 使用二进制锁文件
bun.lockb而不是package-lock.json - 体积更小,解析更快
- 自动生成,不需要手动编辑
- 确保团队间依赖版本一致
.bunfig.toml 配置 (可选)
# 项目根目录下的 .bunfig.toml
[install]
# 使用特定的注册表
registry = "https://registry.npmjs.org/"
# 配置缓存
cache = true
# 安装时显示进度
progress = true
[dev]
# 开发服务器配置
port = 3000
📊 性能对比
依赖安装速度
# 测试项目: photography-admin (40+ 依赖)
npm install ~45 秒
yarn install ~35 秒
pnpm install ~25 秒
bun install ~8 秒 # 🏆 最快!
构建速度
# React + TypeScript + Vite 项目
npm run build ~25 秒
yarn build ~23 秒
bun run build ~15 秒 # 🏆 最快!
内存占用
# 开发服务器运行时内存使用
Node.js + npm ~180 MB
Node.js + yarn ~165 MB
Bun ~120 MB # 🏆 最省内存!
🔄 迁移指南
从 npm 迁移
# 1. 删除旧的锁文件和 node_modules
rm package-lock.json
rm -rf node_modules/
# 2. 使用 bun 安装依赖
bun install
# 3. 更新 package.json
echo '"packageManager": "bun@latest",' >> package.json
从 yarn 迁移
# 1. 删除 yarn 相关文件
rm yarn.lock
rm -rf node_modules/
# 2. 安装依赖
bun install
# 3. 更新脚本命令
# 将 yarn dev 改为 bun run dev 或 bun dev
🛠️ Makefile 集成
项目已配置 Makefile 来简化 Bun 命令:
# 快速启动
make quick # bun install + bun run dev
# 开发相关
make dev # bun run dev
make build # bun run build
make check # lint + type-check + test
# 项目管理
make clean # 清理构建文件
make status # 查看项目状态
make audit # 安全审计
🐛 常见问题
Q: bun.lockb 文件很大?
A: 这是正常的,bun.lockb 是二进制文件,包含了完整的依赖图信息,虽然看起来大但解析极快。
Q: 某些包在 Bun 下不工作?
A: Bun 与 Node.js 高度兼容,但少数包可能有兼容性问题。可以使用 bun --bun 强制使用 Bun 运行时。
Q: 如何在 CI/CD 中使用 Bun?
A: 项目已配置使用 oven-sh/setup-bun@v1 action,自动设置 Bun 环境。
Q: 团队成员必须都使用 Bun 吗?
A: 不必须。Bun 可以读取 package-lock.json,npm/yarn 也能处理 Bun 项目,但推荐统一使用 Bun 以获得最佳性能。
📚 参考资料
🎯 最佳实践
- 依赖管理: 定期运行
bun outdated检查过时依赖 - 锁文件: 始终提交
bun.lockb到版本控制 - 脚本优化: 利用 Bun 的速度优势,多运行类型检查和测试
- CI/CD: 在 CI 中使用
--frozen-lockfile确保一致性 - 团队协作: 在 README 中说明项目使用 Bun
🥖 享受 Bun 带来的极速开发体验吧!