一个基于 Vue 3 + Vite 构建的黄诗扶 Wiki。
/
├── src/
│ ├── assets/ # 静态资源 (样式、图标)
│ ├── components/ # 公用组件
│ ├── composables/ # Vue Composables (可复用逻辑)
│ ├── lib/ # 工具库 (PocketBase 配置)
│ ├── router/ # 路由配置
│ ├── stores/ # 全局状态(主要是上传队列)
│ ├── types/ # 类型定义
│ ├── views/ # 页面视图 (原 Astro 页面迁移)
│ │ └── admin/ # 管理后台页面
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
├── server/ # 音乐播放后端服务
├── pocketbase/ # PocketBase hooks
├── public/ # 公共静态资源
├── index.html # 入口 HTML
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
└── vite.config.ts # Vite 配置
| 依赖 | 版本 | 说明 |
|---|---|---|
| Vue | ^3.5.27 | 前端框架 |
| Vue Router | ^4.6.4 | 路由管理 |
| Tailwind CSS | ^4.1.18 | CSS 框架 |
| PocketBase | ^0.26.8 | 后端数据库 |
| VueUse | ^14.2.1 | Vue Composition API 工具集 |
| marked | ^17.0.2 | Markdown 解析器 |
| 依赖 | 版本 | 说明 |
|---|---|---|
| Vite | ^7.3.1 | 构建工具 |
| TypeScript | ~5.9.3 | 类型支持 |
| vue-tsc | ^3.2.4 | Vue TypeScript 编译器 |
| Prettier | ^3.8.1 | 代码格式化 |
| vite-plugin-vue-devtools | ^8.0.5 | Vue 开发者工具 |
项目使用 PocketBase 作为后端数据库。
- 确保 PocketBase 服务已启动。
- 在
src/lib/pocketbase.ts中配置数据库连接地址,或通过.env文件配置。 - 如果修改了
pocketbase/pb_hooks或pocketbase/pb_migrations,需要同步到 PocketBase 服务目录并重启服务。
项目支持在线音乐播放功能(QQ音乐、网易云音乐)。
- 进入
server/目录安装依赖并启动服务:
cd server
pnpm install
pnpm dev # 开发模式(支持热重载)
# 或
pnpm start # 生产模式- 在
.env文件中配置音乐服务器地址(默认为http://localhost:3001)
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev# 格式化代码
pnpm format# 构建项目
pnpm build
# 预览构建产物
pnpm preview
# 类型检查
pnpm type-check- 后台有一套基于
upload_batches的上传队列,用于处理图库图片和专辑封面的取消、回滚与兜底清理。 - 音乐播放功能需要启动
server/目录下的音乐服务器,详见server/README.md。 - PocketBase 侧的部署说明见
pocketbase/README.md。 - 数据库结构定义见
PocketBaseSchema.md。
本项目采用 MIT 协议开源。