name: 220-admin-uni-init description: 管理端UniApp项目初始化(UniApp+Vue3+TS)。当创建管理端跨平台项目时触发:(1)通过脚手架初始化项目, (2)配置项目名称和基础设置, (3)安装依赖并验证。 alwaysApply: false author: "axeon(23231269@qq.com)" version: "1.0.0"
管理端移动端项目初始化
项目环境检测
从当前目录向上查找 project-info.md,最多 3 层,找到后记为 PROJECT_ROOT。详见 检测方法与前置检查。未找到 → 提示用户先执行 0-init。
角色职责
| 角色 | 职责 | 智能体 |
|---|---|---|
| 主导 | 项目初始化 | js-developer |
| 协作 | 架构确认 | system-architect |
技术栈
| 技术 | 版本 | 说明 |
|---|---|---|
| UniApp | 3.x | 跨平台框架(H5/微信小程序/App) |
| Vue | 3.x | 前端框架 |
| TypeScript | 5.x | 类型安全 |
| Vite | 8.x | 构建工具 |
| uni-ui | latest | UniApp官方UI组件库 |
初始化流程
执行前必须询问用户确认。
步骤1: 询问用户参数
AskUserQuestion({
questions: [
{
question: "这个UniApp端面向哪个用户角色?",
header: "用户角色",
options: [
{ label: "root", description: "系统管理员" },
{ label: "ops", description: "运营" },
{ label: "saas", description: "SAAS管理" },
{ label: "mch", description: "SAAS商户" }
],
multiSelect: false
},
{
question: "如果目录已存在,如何处理?",
header: "覆盖模式",
options: [
{ label: "force", description: "强制覆盖已有文件" },
{ label: "skip", description: "跳过已存在文件" }
],
multiSelect: false
}
]
})
步骤2: 用户确认
必须向用户展示以下信息并等待确认:
即将执行管理端 UniApp 移动端项目初始化:
- 项目名: {project-name}
- 前端项目名: {project-name}-{role}-uni
- 角色: {用户选择的角色}
- 技术栈: UniApp + Vue 3 + TypeScript + Vite
- 输出目录: PROJECT_ROOT/frontend/{project-name}-{role}-uni/
确认执行吗?
用户确认后,再执行脚本。
步骤3: 执行脚本
用户确认后,执行命令(确保在技能目录下执行):
bash scripts/init.sh [目标目录] [模式] [角色]
参数说明:
| 参数 | 说明 | 是否必填 | 默认值 |
|---|---|---|---|
| 目标目录 | 项目根目录(包含 project-info.md) |
是 | 当前目录 |
| 模式 | force(强制覆盖), skip(跳过已存在文件) |
否 | force |
| 角色 | 用户角色(root/ops/saas/mch) | 否 | admin |
执行示例:
# 初始化 admin-uni(默认角色)
bash scripts/init.sh /Users/user/project force
# 初始化 saas-uni
bash scripts/init.sh /Users/user/project force saas
# 初始化 mch-uni,跳过已存在文件
bash scripts/init.sh /Users/user/project skip mch
脚本输出说明:
✓表示通过⚠表示警告ERROR表示错误,会终止执行
输出要求
输出位置: PROJECT_ROOT/frontend/{project-name}-{role}-uni/ 目录
包含内容: 通过 UniApp 官方脚手架创建的完整项目
目录结构:
项目根目录/
├── project-info.md
└── PROJECT_ROOT/frontend/
└── {project-name}-{role}-uni/
├── src/
│ ├── pages/
│ ├── components/
│ ├── store/
│ ├── api/
│ ├── utils/
│ ├── App.vue
│ ├── main.ts
│ ├── manifest.json
│ ├── pages.json
│ └── uni.scss
├── package.json
├── tsconfig.json
├── vite.config.ts
└── index.html
命名示例(假设项目名为 my-shop):
| 角色 | 前端项目名 | 目录 |
|---|---|---|
| root | my-shop-root-uni | PROJECT_ROOT/frontend/my-shop-root-uni/ |
| ops | my-shop-ops-uni | PROJECT_ROOT/frontend/my-shop-ops-uni/ |
| saas | my-shop-saas-uni | PROJECT_ROOT/frontend/my-shop-saas-uni/ |
| mch | my-shop-mch-uni | PROJECT_ROOT/frontend/my-shop-mch-uni/ |
下一步
初始化完成后,提示用户进入 220-admin-uni-gencode 进行移动端代码生成(从后端Swagger生成api/router/page/i18n)。
流程位置:220-admin-uni-init → 220-admin-uni-gencode → 220-admin-uni-dev (+ 221-admin-uni-dev-review)
参考
- 初始化脚本 - 自动化初始化脚本