Skip to content

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 prunepnpm clean && pnpm install

常见问题 FAQ

  • 可以只启动某个前端吗?
    可以,使用 pnpm dev:user-centerpnpm dev:admin-center 单独启动指定前端。

  • 如何在 CI 中构建?
    常见流程为 pnpm install --frozen-lockfile && pnpm build,必要时分别执行 build:serverbuild:user-centerbuild:admin-center

  • 多数据库配置如何切换?
    在后端 .env 中切换 DATABASE_TYPE(mongodb/mariadb),前端无需修改,API 层通过 Repository/Adapter 适配。