domo-app-publish
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBuild & Deploy Workflow
构建与部署工作流
Prerequisites
前提条件
- Node.js installed
- Domo CLI installed ()
npm install -g @domoinc/ryuu
- 已安装Node.js
- 已安装Domo CLI()
npm install -g @domoinc/ryuu
Local development
本地开发
bash
npm install # Install dependencies
npm run dev # Start dev server (usually Vite)For API calls to work locally, you need ryuu-proxy configured and authenticated.
domo loginbash
npm install # 安装依赖
npm run dev # 启动开发服务器(通常为Vite)要让本地API调用正常工作,你需要配置ryuu-proxy并通过完成身份验证。
domo loginBuild for production
生产环境构建
bash
npm run build # Outputs to dist/ (Vite) or build/ (CRA)bash
npm run build # 输出到dist/目录(Vite)或build/目录(CRA)Domo CLI Authentication
Domo CLI身份验证
bash
domo login # Authenticate with your Domo instanceYou'll be prompted for your Domo instance URL and credentials.
bash
domo login # 与你的Domo实例进行身份验证系统会提示你输入Domo实例URL和凭据。
Publishing
发布
bash
cd dist # Change to build output directory
domo publish # Publish to DomoImportant - First publish:
- On first publish, Domo generates a new for your app
id - This ID appears in the published in your dist folder
manifest.json - You must copy this ID back to your source (e.g.,
manifest.json)public/manifest.json - If you don't, every publish creates a NEW app instead of updating the existing one
bash
undefinedbash
cd dist # 切换到构建输出目录
domo publish # 发布到Domo重要提示 - 首次发布:
- 首次发布时,Domo会为你的应用生成一个新的
id - 该ID会出现在dist文件夹中已发布的文件里
manifest.json - 你必须将此ID复制回源码中的文件(例如
manifest.json)public/manifest.json - 如果不这样做,每次发布都会创建一个新应用,而非更新现有应用
bash
undefinedAfter first publish, copy the generated ID:
首次发布后,复制生成的ID:
dist/manifest.json → public/manifest.json (just the "id" field)
dist/manifest.json → public/manifest.json(仅复制"id"字段)
undefinedundefinedSubsequent publishes
后续发布
Once the ID is in your source manifest:
bash
npm run build && cd dist && domo publish一旦ID已添加到源码的manifest文件中:
bash
npm run build && cd dist && domo publishBuild Checklist
构建检查清单
Before publishing, ensure:
- has correct
manifest.json(notdataSetId) for datasetsid - has
manifest.jsonin each dataset mappingfields: [] - exists and is 300x300 pixels
thumbnail.png - All queries use with specific columns (never fetch all columns)
.select() - Each visualization has its own optimized query
- No calls (use
.aggregate()or client-side aggregation).groupBy() - calls have a grouping column (not just aggregations)
.groupBy()
发布前,请确保:
- 中为数据集配置了正确的
manifest.json(而非dataSetId)id - 每个数据集映射中包含
fields: [] - 存在且尺寸为300x300像素
thumbnail.png - 所有查询均使用指定特定列(绝不获取所有列)
.select() - 每个可视化组件都有其优化后的查询
- 未使用调用(请使用
.aggregate()或客户端聚合).groupBy() - 调用包含分组列(而非仅聚合操作)
.groupBy()