# g2rain-infra-app(基建 / 平台能力子应用)
g2rain-infra-app 是基于 Vue 3 + TypeScript + Vite + Element Plus + qiankun 的微前端子应用,侧重 G2rain 基建与平台能力相关界面(与通用业务子应用模板并存)。可作为子应用由主壳加载,也可独立运行。
与后端 g2rain-infra 的关系:后端 g2rain-infra 提供路由定义、字典、国际化、发号等 API;本仓库是消费这些能力的 前端子应用,二者名称相近但职责不同。
能力会持续迭代,以仓库 README 与架构文档为准。
源码仓库:github.com/g2rain/g2rain-infra-app (opens new window)
# 核心行为摘要
- 双模式:通过
window.__POWERED_BY_QIANKUN__区分 子应用模式(Token 由主应用 props 注入、一般不持久化)与 独立运行模式(可走完整 SSO、Token 可持久化)。 - Token / SSO / DPoP:与主应用约定一致;详见仓库中
src/store/modules/token.ts、src/main.ts、src/qiankun.ts等实现。 - 请求签名:可与 OpenResty / ES256 等链路配合(仓库 README 中有技术栈说明)。
# 生态位置
| 组件 | 说明 |
|---|---|
| g2rain-main-shell | qiankun 主应用 |
| g2rain-app-template / g2rain-app-cli | 通用子应用模板与脚手架 |
| g2rain-cms-app | CMS 业务子应用(与本仓库并列) |
# 环境要求
- Node.js ≥ 18、npm ≥ 9(可选 Docker 用于部署镜像)
# 安装与 .env 示例
git clone https://github.com/g2rain/g2rain-infra-app.git
cd g2rain-infra-app
npm install
npm run dev
VITE_APPLICATION_CODE=g2rain-infra-app
VITE_BASE_URL=/test/
VITE_BACKEND_ORIGIN=http://localhost:8080
VITE_APPLICATION_CONTEXT=/test
VITE_IAM_ORIGIN=http://localhost:8080
VITE_REFRESH_TOKEN_URL=/auth/refresh-token
VITE_GENERATE_TOKEN_URL=/auth/token
VITE_SSO_BASE_URL=https://sso.example.com
VITE_AUTH_END_POINT=/auth/authorize
VITE_REDIRECT_URI=http://localhost:3000/test/sso_callback
VITE_SERVER_PORT=3000
VITE_BASE_URL、VITE_APPLICATION_CONTEXT、VITE_REDIRECT_URI 必须与主应用与 Nginx 分配路径一致,详见仓库内说明与 快速开始。
# 构建
npm run build
npm run preview
项目启用 noEmit: true 时,应避免在 src/ 下残留误生成的 .js;清理方式见仓库 README。
# 贡献与问题跟踪
建议在 g2rain/g2rain/issues (opens new window) 集中提交并注明 g2rain-infra-app。
# 相关文档
- g2rain-infra(后端)
- g2rain-deploy(入口路径与
VITE_CONTEXT_PATH对齐说明)