本文档由 g2rain-app-cli 的
# 架构概览
docs/architecture/overview.md 自动同步生成。g2rain-app-cli 是单入口 Node.js ESM 命令行工具(create-g2rain-app / g2rain-app)。它负责:
- 把模板脚手架成新业务 App(
create) - 在已有 App 上运行开发期生成工具(
generate、build-config)
不参与生成项目的浏览器运行时。
# 平台关系
flowchart LR
Developer[开发者 / Agent] --> CLI[g2rain-app-cli]
Source[g2rain-app-template 源仓] -->|sync:template| Bundled[包内 template]
CLI -->|create| Bundled
CLI -->|create| Generated[生成的前端 App]
CLI -->|generate build-config| ExistingApp[已有前端 App]
Central[g2rain frontend-app Profile] --> Source
Central --> Generated
Generated --> Shell[g2rain-main-shell]
# 源码结构
src/
index.ts # dispatch
cli/parse.ts # 子命令路由
commands/ # create | generate | build-config
scaffold/ # 模板复制与身份改写
tools/generate/ # SQL → 页面引擎 + ejs
tools/build-config/ # route-map / v-permission → JSON
types/resource.ts # 资源 JSON 自包含类型
template/ # 发布用应用模板快照(sync 自源仓)
# 核心不变量
- create 不覆盖已存在目标目录。
- 默认模板为包内
template/快照,来源可追溯;排除开发产物与敏感文件。 - generate / build-config 路径相对
--cwd,默认对齐 frontend-app 目录约定。 - 未知 CLI 选项失败;失败明确非零退出。