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

241 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 管理后台 - Bun 使用指南
## 🥖 Bun 简介
Bun 是一个极速的 JavaScript 运行时和包管理器,专为现代前端开发而设计。
### 主要优势
-**极速安装**: 比 npm 快 2-3 倍
- 🔧 **内置工具**: 打包器、测试运行器、转译器
- 🎯 **高兼容性**: 100% 兼容 Node.js API
- 💾 **内存效率**: 更低的内存占用
- 📦 **原生支持**: TypeScript、JSX 无需配置
## 🚀 快速开始
### 安装 Bun
```bash
# macOS/Linux
curl -fsSL https://bun.sh/install | bash
# Windows (使用 WSL)
curl -fsSL https://bun.sh/install | bash
# 验证安装
bun --version
```
### 项目初始化
```bash
# 进入项目目录
cd admin/
# 安装依赖
bun install
# 启动开发服务器
bun run dev
```
## 📋 常用命令
### 包管理
```bash
# 安装所有依赖
bun install
# 安装特定包
bun add react
bun add -d typescript # 开发依赖
# 移除包
bun remove package-name
# 更新依赖
bun update
# 清理缓存
bun pm cache rm
```
### 脚本运行
```bash
# 开发服务器
bun run dev
bun dev # 简写
# 构建生产版本
bun run build
# 类型检查
bun run type-check
# 代码检查
bun run lint
# 测试
bun run test
bun test # 简写
```
### 高级功能
```bash
# 直接运行 TypeScript 文件
bun run src/index.ts
# 安装并运行包 (类似 npx)
bunx create-react-app my-app
bunx vite
# 查看依赖树
bun pm ls
# 安全审计
bun audit
```
## 🔧 配置文件
### package.json 配置
```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 配置 (可选)
```toml
# 项目根目录下的 .bunfig.toml
[install]
# 使用特定的注册表
registry = "https://registry.npmjs.org/"
# 配置缓存
cache = true
# 安装时显示进度
progress = true
[dev]
# 开发服务器配置
port = 3000
```
## 📊 性能对比
### 依赖安装速度
```bash
# 测试项目: photography-admin (40+ 依赖)
npm install ~45 秒
yarn install ~35 秒
pnpm install ~25 秒
bun install ~8 秒 # 🏆 最快!
```
### 构建速度
```bash
# React + TypeScript + Vite 项目
npm run build ~25 秒
yarn build ~23 秒
bun run build ~15 秒 # 🏆 最快!
```
### 内存占用
```bash
# 开发服务器运行时内存使用
Node.js + npm ~180 MB
Node.js + yarn ~165 MB
Bun ~120 MB # 🏆 最省内存!
```
## 🔄 迁移指南
### 从 npm 迁移
```bash
# 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 迁移
```bash
# 1. 删除 yarn 相关文件
rm yarn.lock
rm -rf node_modules/
# 2. 安装依赖
bun install
# 3. 更新脚本命令
# 将 yarn dev 改为 bun run dev 或 bun dev
```
## 🛠️ Makefile 集成
项目已配置 Makefile 来简化 Bun 命令:
```bash
# 快速启动
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 官方文档](https://bun.sh/docs)
- [Bun GitHub 仓库](https://github.com/oven-sh/bun)
- [Bun vs Node.js 性能对比](https://bun.sh/blog/bun-v1.0)
- [Bun 包管理器指南](https://bun.sh/docs/cli/install)
## 🎯 最佳实践
1. **依赖管理**: 定期运行 `bun outdated` 检查过时依赖
2. **锁文件**: 始终提交 `bun.lockb` 到版本控制
3. **脚本优化**: 利用 Bun 的速度优势,多运行类型检查和测试
4. **CI/CD**: 在 CI 中使用 `--frozen-lockfile` 确保一致性
5. **团队协作**: 在 README 中说明项目使用 Bun
---
🥖 **享受 Bun 带来的极速开发体验吧!**