项目生成(脚手架)
了解 AgileBuilder 的项目生成能力
概述
项目生成是 AgileBuilder 的核心能力。它基于模板和变量,一键生成标准化、可复现的项目骨架。
核心理念:同一模板 + 同一参数 = 同一项目骨架,结果可复现。
基本用法
生成命令
agilebuilder generate <template-name> <project-name>
示例
# 使用 react-starter 模板生成项目
agilebuilder generate react-starter my-app
# 指定输出目录
agilebuilder generate react-starter ./projects/my-app
带变量生成
命令行变量
使用 --var 参数指定变量值:
agilebuilder generate react-starter my-app \
--var projectName=my-app \
--var useTypeScript=true \
--var packageManager=npm
交互式生成
不带变量时,会进入交互式问答模式:
agilebuilder generate react-starter my-app
# 交互式问答:
# ? 项目名称: my-app
# ? 是否使用 TypeScript: Yes
# ? 选择包管理器: npm
生成选项
| 选项 | 说明 |
|---|---|
--var <key=value> | 指定变量值,可多次使用 |
-y, --yes | 跳过确认提示 |
--no-hooks | 不执行 hooks |
--force | 强制覆盖已存在的目录 |
生成流程
项目生成经历以下步骤:
1. 解析模板配置
└── 读取 agilebuilder.json
└── 验证变量定义
2. 收集变量值
└── 命令行参数
└── 交互式输入
└── 默认值
3. 渲染模板文件
└── 变量替换
└── 条件渲染
└── 循环渲染
4. 执行 pre-generate hooks
└── 验证环境
└── 准备工作
5. 输出项目文件
└── 写入目标目录
6. 执行 post-generate hooks
└── 安装依赖
└── 初始化 Git
└── 其他初始化
Hooks 自动化
项目生成后,可以自动执行初始化操作:
{
"hooks": {
"post-generate": [
"@agilebuilder/install-deps",
"@agilebuilder/git-init"
]
}
}
常见 Hooks:
@agilebuilder/install-deps- 自动安装依赖@agilebuilder/git-init- 初始化 Git 仓库
输出示例
$ agilebuilder generate react-starter my-app
🚀 正在生成项目...
✓ 解析模板配置
✓ 收集变量值
✓ 渲染模板文件 (12 个文件)
✓ 执行 pre-generate hooks
✓ 输出项目文件
✓ 执行 post-generate hooks
📦 项目已生成: ./my-app
📦 安装依赖中...
✓ 依赖安装完成
✓ Git 仓库已初始化
🎉 项目已准备就绪!
下一步:
cd my-app
npm run dev