管理后台
This commit is contained in:
241
admin/README-BUN.md
Normal file
241
admin/README-BUN.md
Normal file
@ -0,0 +1,241 @@
|
||||
# 管理后台 - 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 带来的极速开发体验吧!**
|
||||
Reference in New Issue
Block a user