Skip to content

docs(runner): runner 真正的 API 基址配置面是 api 查询参数,但全仓文档零处记载 #3537

Description

@yinlianghui

越界发现,记录于 #3533(删除 runner.mdx 中教两个 runner 不读的环境变量的整节)的实现过程中。未在该 PR 中顺手实现 —— 该单的文件面锁在「删除错误内容 + 改一处读法」,新增文档属另一件事(PM 分诊时已预留:「若 runner 本该有 API 基址配置面,那是缺失的实现,另立单」)。

事实

@object-ui/runner 确实一个环境变量都不读(这是 #3533 的前提,已复核通过,范围比原单更宽 —— 整个包而不只是 src):

$ grep -rn "import.meta.env|process.env|loadEnv|VITE_" packages/runner --exclude-dir=node_modules --exclude-dir=dist
(无输出)

但它一个真实、可用的 API 基址配置面 —— URL 查询参数 api,见 packages/runner/src/App.tsx:43-57:

const params = new URLSearchParams(window.location.search);
const apiUrl = params.get('api');

// IF ?api=... is present, use Network Loader
if (apiUrl) {
  console.log('🔌 Using Network Loader:', apiUrl);
  return new NetworkLoader(apiUrl);
}

// ELSE use bundled files (Local Development)
return new LocalBundleLoader();

NetworkLoader 把该值当作 baseUrl(packages/runner/src/lib/MetadataLoader.ts:75-96,构造签名 constructor(baseUrl: string = '/api')),据此去取 ${baseUrl}/app.json${baseUrl}/pages{path}.json

问题

这个真实能力在全仓文档里零处记载:

$ grep -rn "?api=" content/                                                        → 无输出
$ grep -n "?api|NetworkLoader|LocalBundleLoader" content/docs/utilities/runner.mdx  → 无输出
$ grep -n "VITE_|?api|env" packages/runner/README.md                                → 无输出

失败形态与 #3533 互为镜像:#3533文档教了实现里不存在的东西,本单是实现里有的东西文档一个字没写。读者想把 runner 指向自己的 API,照 runner.mdx 找不到任何入口 —— 且在 #3533 删掉那节错误的 "Environment Variables" 之后,该页关于 API 基址的指引为(删除是对的:文档不许描述不存在的能力;但由此暴露出真实能力从来没被写过)。

建议

content/docs/utilities/runner.mdx 的 Configuration 一节补一段真实的加载策略说明(带 api 查询参数 → NetworkLoader 走远端;缺省 → LocalBundleLoader 用打包进去的本地 JSON),并同步 packages/runner/README.md。纯文档补全,不涉及实现改动。

备注

按席位纪律,查重由 PM 座位统一执行(共享 GitHub 身份有速率限制,dev 席位不重复 search)。若已有同源单请 race-close 本单。


Blocked-by: #3538


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions