Monorepo 开发与脚本
本项目使用 pnpm monorepo 管理后端(EggJS 3.x)与双前端(user-center/admin-center)。本页专注本地开发/构建脚本与端口信息,关于各端职责与技术栈请见 前后端双应用。
TL;DR
pnpm dev启动 server + user-center,pnpm dev:all额外启动 admin-center- 默认端口:8080(API)/3000(user)/5173(admin);按需调整避免冲突
- 子包依赖用
pnpm --filter安装,避免污染全局 node_modules
目录结构速览
CMS3/
├── server/ # EggJS 服务端
├── client/
│ ├── user-center/ # 用户端(Vue 3)
│ └── admin-center/ # 管理端(Vue 3 + TS)
├── package.json # 根脚本 & workspace 配置
└── pnpm-workspace.yaml # monorepo 管理环境要求
- Node.js 18.20+(admin-center 依赖)
- pnpm 8+
- MongoDB 或 MariaDB(可配合 Docker,见 Docker 部署)
- Redis 可选(缓存/会话)
常用脚本
bash
# 安装全量依赖(根目录)
pnpm install
# 同时启动服务端 + 用户前端(默认开发流程)
pnpm dev
# 并行启动全部项目(含管理端)
pnpm dev:all
# 单独启动
pnpm dev:server # server, 端口 8080
pnpm dev:user-center # user-center, 端口 3000
pnpm dev:admin-center # admin-center, 端口 5173
# 构建
pnpm build # 全量构建
pnpm build:server
pnpm build:user-center
pnpm build:admin-center
# 代码质量
pnpm lint
pnpm lint:server
pnpm lint:user-center
pnpm lint:admin-center
pnpm format
# 清理
pnpm clean
pnpm clean:server
pnpm clean:user-center
pnpm clean:admin-center运行端口与入口
- 用户前端:
http://localhost:3000 - 管理后台:
http://localhost:5173 - 后端 API:
http://localhost:8080
依赖安装/升级提示
- monorepo 下建议使用 pnpm,避免 node_modules 冲突
- 为单个子项目加依赖:
pnpm --filter "./server" add <pkg>(示例) - 若遇到依赖缓存问题,可执行
pnpm store prune或pnpm clean && pnpm install
常见问题 FAQ
可以只启动某个前端吗?
可以,使用pnpm dev:user-center或pnpm dev:admin-center单独启动指定前端。如何在 CI 中构建?
常见流程为pnpm install --frozen-lockfile && pnpm build,必要时分别执行build:server、build:user-center、build:admin-center。多数据库配置如何切换?
在后端.env中切换DATABASE_TYPE(mongodb/mariadb),前端无需修改,API 层通过 Repository/Adapter 适配。