Files
photography/admin/README-BUN.md
2025-07-09 17:50:29 +08:00

4.7 KiB
Raw Permalink Blame History

管理后台 - 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.jsonnpm/yarn 也能处理 Bun 项目,但推荐统一使用 Bun 以获得最佳性能。

📚 参考资料

🎯 最佳实践

  1. 依赖管理: 定期运行 bun outdated 检查过时依赖
  2. 锁文件: 始终提交 bun.lockb 到版本控制
  3. 脚本优化: 利用 Bun 的速度优势,多运行类型检查和测试
  4. CI/CD: 在 CI 中使用 --frozen-lockfile 确保一致性
  5. 团队协作: 在 README 中说明项目使用 Bun

🥖 享受 Bun 带来的极速开发体验吧!