用途:将起源于 Google AI Studio(常见 Cloud Run/预览导向)的项目转换为 Domo App Platform 自定义应用,并采用静态资源方式经 Domo CLI 部署。其部署契约要求:npm run build 生成自包含的 dist/ 目录;在 dist 内执行 cd dist && domo publish 可用(Domo 从子路径而非站点根提供服务);应用加载资源正常,刷新与导航不中断。
识别来源:README 提及 Google AI Studio、Gemini API、Build 模式或 Cloud Run;存在 cloudbuild.yaml、Dockerfile 或 Cloud Run 部署说明;使用 process.env.GEMINI_API_KEY 或标注由 AI Studio 提供的占位符;结构依赖服务器/容器而非静态托管。命中任一即按 AI Studio 来源处理。
主要能力与步骤:一、确保标准构建管线。Vite 使用 dev: vite、build: vite build、preview: vite preview,输出为 dist/;CRA 默认输出 build/,不符合契约,优先迁移到 Vite,或在用户明确要求时调整 Domo 发布命令。验收:npm install 成功,npm run build 生成含 index.html 与 assets/* 的 dist/。二、修正 base 路径以适配子路径托管,Vite 在 vite.config.* 中设 base: './',其他打包器使用等价的相对 public path。验收:从嵌套路径打开 dist/index.html 时 JS/CSS 正常加载,无 404,避免硬编码 /assets/... 绝对路径。三、静态托管下的路由健壮性。若使用客户端路由(如 React Router),除非确认平台提供 SPA 重写,优先改用 HashRouter;若不便改,需说明深层路由刷新会 404,除非配置重写规则。验收:构建产物可导航与刷新而无需服务器重写。四、环境变量与密钥:不在客户端代码中携带原始 API 密钥;UI 需调用 Gemini/LLM 时,优先经 domo.js 使用 Domo AI API,或经后端(如 Domo Code Engine)代理并由服务端注入密钥;将 process.env.* 替换为工具链变量,Vite 用 import.meta.env.VITE_*,提供 .env.example 仅记录非机密变量。验收:无提交的密钥,无因缺少 AI Studio 环境注入导致的运行时崩溃。五、Domo 部署契约:工作流为 npm run build、cd dist、domo publish;若平台需要 manifest/config 文件,确保位于 Domo 期望位置或在构建时复制进 dist/,默认添加 postbuild 脚本复制缺失的平台文件。验收:dist/ 包含发布运行所需全部内容,且在其中执行 domo publish 无需手动复制文件。
输出要求:完成后给出变更文件清单、本地运行命令,以及确认构建产出 dist/、子路径资源加载、路由可用、客户端无密钥的完成清单。处理时应果断实施,除缺少文件受阻外不追问。限制:仅在 web 界面与 Domo 静态托管约束下工作,具体 Domo AI API 可用性与平台重写配置暂未提供。