管理后台

This commit is contained in:
xujiang
2025-07-09 17:50:29 +08:00
parent 0651b6626a
commit 5f2152c7a6
40 changed files with 3839 additions and 795 deletions

241
admin/README-BUN.md Normal file
View 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 带来的极速开发体验吧!**