# 模板结构

插件开发时，必须遵循如下目录结构，否则 BuildingAI 将无法识别和加载插件。

```
参考拓展应用模板/
├── .gitignore                 git 忽略配置
├── README.md                  插件说明（当前较简短，可补充安装/开发/发布）
├── SEEDS.md                   数据库种子说明（如何初始化示例数据）
├── LICENSE                    开源协议
├── package.json               插件包配置（依赖/脚本/构建入口等）
├── tsconfig.json              通用 TS 配置
├── tsconfig.api.json          后端 API TS 配置
├── tsconfig.web.json          前端 Web TS 配置
├── tsup.config.ts             API 构建配置（tsup 打包）
├── vite.config.ts             Web 构建/开发配置（Vite）
├── eslint.config.mjs          ESLint 配置
├── index.html                 Web 入口 HTML（Vite）
├── manifest.json              插件清单（插件元信息/入口/配置等）
├── data/                      插件运行时数据目录（业务数据文件）
├── storage/                   文件存储目录（上传/生成文件等）
├── src/                       核心源代码
│   ├── web/                   前端（React）
│   │   ├── main.tsx           前端入口
│   │   ├── routes.tsx         路由配置
│   │   ├── locales/           国际化资源
│   │   ├── styles/            样式
│   │   ├── pages/             页面
│   │   │   ├── index.tsx      插件前台首页/入口页
│   │   │   ├── article/       文章相关页面
│   │   │   │   └── [id].tsx   文章详情页（动态路由）
│   │   │   └── console/       插件后台（控制台）页面
│   │   │       ├── article/   后台文章管理页面
│   │   │       └── column/    后台栏目管理页面
│   │   ├── components/        公共组件
│   │   ├── stores/            全局状态管理
│   │   ├── assets/            静态资源
│   │   └── services/          前端业务接口封装（请求 API）
│   └── api/                   后端（NestJS + TypeORM）
│       ├── index.ts           API 入口文件
│       ├── upgrade/           升级脚本目录（按版本组织）
│       │   └── 0.0.2/         示例：0.0.2 版本升级脚本（目录存在）
│       ├── static/            静态资源（API 侧需要对外提供的资源）
│       ├── db/                数据库相关
│       │   ├── entities/      TypeORM 实体
│       │   │   ├── article.entity.ts
│       │   │   └── category.entity.ts
│       │   ├── migrations/    迁移文件目录（当前用 .gitkeep 占位）
│       │   └── seeds/         种子数据
│       │       ├── data/      种子数据文件
│       │       ├── seeders/   seeder 实现
│       │       └── index.ts   seeds 入口
│       └── modules/           业务模块
│           ├── app.module.ts  模块统一出入口
│           ├── article/       文章模块
│           │   ├── article.module.ts
│           │   ├── dto/               DTO 定义
│           │   ├── controllers/       控制器
│           │   │   ├── web/           前台接口
│           │   │   │   └── article.web.controller.ts
│           │   │   └── console/       后台接口
│           │   │       └── article.controller.ts
│           │   └── services/          业务逻辑
│           └── category/     栏目/分类模块
│               ├── category.module.ts
│               ├── dto/
│               ├── controllers/
│               │   ├── web/
│               │   │   └── category.web.controller.ts
│               │   └── console/
│               │       └── category.controller.ts
│               └── services/
├── build/                     构建产物（运行时加载的 JS 实体等）
│   ├── index.js
│   ├── db/
│   │   ├── entities/          编译后的实体（*.entity.js）
│   │   └── seeds/             编译后的 seeds
│   ├── modules/               编译后的模块
│   └── upgrade/               编译后的升级脚本
└── .output/                   打包输出（web/nuxt-like 输出目录，存在于该模板）
```

下一章 [应用开发](https://doc.buildingai.cc/7977765m0.md)。

