| name | scaffold |
| description | 快速生成包含 server、web、client 三个部分的 pnpm monorepo 项目脚手架。使用场景:(1) 创建新的全栈项目 (2) 快速启动 AIMO 风格的项目结构 (3) 初始化包含 Express 后端、React 前端和 Electron 客户端的项目。 |
Scaffold
快速生成 AIMO 风格的全栈项目脚手架,包含 server、web、client 三个应用。
使用方式
运行脚手架脚本生成项目:
python3 .claude/skills/scaffold/scripts/scaffold.py <project-name> --output <output-dir>
参数:
<project-name>: 项目名称(将用于包名,如 @myproject/server)
--output, -o: 输出目录(默认当前目录)
示例:
python3 .claude/skills/scaffold/scripts/scaffold.py myapp
python3 .claude/skills/scaffold/scripts/scaffold.py myapp --output ~/projects
生成的项目结构
myapp/
├── apps/
│ ├── server/ # Express.js 后端
│ │ ├── src/
│ │ │ ├── index.ts # 入口文件
│ │ │ ├── app.ts # Express 应用配置
│ │ │ ├── ioc.ts # IOC 容器配置
│ │ │ ├── controllers/ # 路由控制器
│ │ │ ├── services/ # 业务逻辑
│ │ │ ├── sources/ # 数据源
│ │ │ └── utils/ # 工具函数
│ │ └── package.json
│ │
│ ├── web/ # React 前端
│ │ ├── src/
│ │ │ ├── main.tsx # 入口文件
│ │ │ ├── App.tsx # 主组件
│ │ │ ├── pages/ # 页面组件
│ │ │ ├── components/ # 可复用组件
│ │ │ └── services/ # 业务服务(状态管理)
│ │ └── package.json
│ │
│ └── client/ # Electron 客户端
│ ├── src/
│ │ ├── main/index.ts # 主进程入口
│ │ └── preload/index.ts # 预加载脚本
│ └── package.json
│
├── packages/
│ └── dto/ # 共享 DTO 包
│
├── config/
│ ├── eslint-config/ # ESLint 配置
│ └── typescript-config/# TypeScript 配置
│
├── package.json # 根 workspace 配置
├── pnpm-workspace.yaml # pnpm workspace 配置
├── turbo.json # Turbo 构建配置
└── .env.example # 环境变量模板
技术栈
Server (后端)
- Express.js + routing-controllers
- TypeDI 依赖注入
- LanceDB 向量数据库
- JWT 认证
Web (前端)
- React 19 + Vite
- @rabjs/react 状态管理
- Tailwind CSS
- React Router 7
Client (Electron)
- Electron 40+
- Vite 构建
- electron-builder 打包
下一步
- 进入项目目录:
cd <project-name>
- 安装依赖:
pnpm install
- 复制环境变量:
cp .env.example .env
- 启动开发:
pnpm dev
模板自定义
如需修改模板,编辑以下文件:
templates/apps/server/ - 后端模板
templates/apps/web/ - 前端模板
templates/apps/client/ - Electron 客户端模板
templates/packages/dto/ - DTO 包模板
模板变量:{{project_name}} 会被替换为实际项目名称