Skip to content

Develop 开发模块

develop/ 是 Pbstar-admin 的工程化模块,集中了交互式 CLI 与接口 mock,root 通过 pnpm run -filter develop <cmd> 透传调用。

develop
├── cli                       # CLI:create/dev/build/add/remove/check
├── mock                      # 接口 mock(可持久化到 localStorage)
├── plugins                   # rsbuild 插件(distZipPlugin)
├── dist                      # 打包产物(按应用分目录)
└── distZip                   # 打包压缩包

Create 创建子应用

Pbstar-admin CLI 工具用于快速创建和管理子应用,主要功能包括:

  • 交互式创建子应用
  • 自动生成项目目录结构
  • 自动配置端口和路由
  • 自动更新项目配置文件

使用方法

bash
pnpm run create

执行命令后,CLI 会提示输入子应用 appKey 和选择子应用类型。

创建完成后会自动:

  1. apps/ 目录下生成子应用文件夹(基于 develop/cli/template 模板)
  2. 更新 apps/apps.json 配置文件
  3. 更新 rsbuild.config.ts 多环境配置

注意事项

  • 子应用 appKey 只能包含小写字母、数字和连字符
  • 保留名:maincomponents 不可作为 appKey
  • 子应用类型为 In 内部子应用和 Out 外部子应用;选择 Out 类型时需提供有效的 git 仓库地址(https 或 ssh 格式,以 .git 结尾)
  • 端口号超出范围会导致创建失败,默认范围为 8801-8899
  • 创建前请确保已安装所有依赖

Dev 启动服务

功能

  • 启动指定应用
  • 支持热更新
  • 提供访问地址和端口信息
  • 启动多个应用需要单独多开终端窗口

使用方法

bash
pnpm run dev

执行命令后,会提示选择要启动的应用。

  • 主应用默认端口为 8800(开发模式下仅在单选主应用时自动打开浏览器)
  • 子应用端口取 apps/apps.json 中的 devPort
  • 子应用经 wujie 运行时挂载到主应用,请统一通过主应用地址访问
  • Ctrl+C 结束时会一并停止所有已启动的 dev 服务

Build 打包项目

使用方法

bash
pnpm run build

执行命令后,会提示选择要打包的应用。

打包完成后:

  1. 主应用产物输出到 develop/dist/main,各子应用输出到 develop/dist/{appKey}
  2. distZipPlugin 会把每个应用的产物打成 zip,输出到 develop/distZip/(文件名含时间戳)

子应用线上地址在构建时读取 apps/apps.jsonproUrl,生产环境接口地址由 nginx 代理处理(见 部署)。

Add 添加依赖

功能

  • 为指定工程添加依赖
  • 支持添加开发依赖和生产依赖

使用方法

bash
pnpm run add

执行命令后,会提示选择要添加依赖的工程、输入依赖包名称和选择依赖包类型。

可选择的工程范围:全局工程 / assets / components / develop / main / 各子应用。

Remove 删除依赖

功能

  • 为指定工程删除依赖

使用方法

bash
pnpm run remove

执行命令后,会提示选择要删除依赖的工程和输入要删除的依赖名称。

Check 类型检查

功能

  • 对 main 与全部子应用跑 vue-tsc 类型检查
  • 子应用清单从 apps/apps.json 动态读取,新增/删除子应用无需手动改这里
  • 外部子应用(out 类型)未拉取 submodule 时没有 tsconfig,自动跳过

使用方法

bash
pnpm run check

项目未配置 ESLint/Prettier,改动后主要靠 checkdev 实跑验证。

Mock 接口 mock

develop/mock 为前端接口 mock,仅在开发环境PUBLIC_MOCK=T 时生效,生产环境永久关闭。

开启方式

在本地 .env.development 设置:

PUBLIC_MOCK=T

拦截逻辑位于 assets/utils/request.ts:发起请求时先判断 isMockEnabled,命中路由表则走 matchMock 返回本地数据,未命中再发真实请求。

目录结构

develop/mock
├── data                       # 各模块 mock 数据与处理函数
│ ├── main.ts                  # 登录/登出/个人信息/看板等
│ ├── user.ts                  # 用户管理
│ ├── role.ts                  # 角色管理
│ ├── permission.ts            # 权限管理
│ └── person.ts                # example 人员列表
├── index.ts                   # 路由表 method:url -> handler,matchMock 匹配
├── persist.ts                 # localStorage 持久化(isMockEnabled 总开关、种子数据)
└── utils.ts                   # nextId / ok / fail / paginate 工具

特性

  • method:url 为键维护路由表,命中即返回统一的 Res 结构(code/msg/data),可模拟网络延迟(默认 200ms)
  • 数据可持久化到 localStorage(键 p_mock_data),改动在刷新后仍保留;删除该键再刷新即可重置为种子数据
  • 接口未登记时给出 warning 并回退到真实请求
  • 分页接口用 paginate 处理,新增记录 id 用 nextId 自增,避免与种子数据冲突

京ICP备2025125905号