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

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions