项目生成(脚手架)

了解 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

下一步