Skip to content

packages/runner/README.md §Development Workflow 教读者写 TypeScript schema 文件,但两个 loader 都只认 JSON #3604

Description

@yinlianghui

越界发现,记录于 #3576(清 runner README 的两处虚构能力面)期间通读全文时。未在该 PR(#3602)中顺手修改 —— 该 issue 锁死在 createRunner() / runner.config.js / 404 链接这三条,这是第四处,属另一件事。

事实(对 origin/main + PR #3602 改后全文复核)

packages/runner/README.md## Development Workflow 第 1 步:

1. Create a schema file (JSON or TypeScript)

runner 没有任何路径能加载 TypeScript 写的 schema:

  • LocalBundleLoader(packages/runner/src/lib/MetadataLoader.ts:26-28)只 glob JSON:
    private appGlob   = import.meta.glob('../app-data/app.json');
    private pagesGlob = import.meta.glob('../app-data/pages/**/*.json');
    private rootGlob  = import.meta.glob('../app-data/*.json');
  • NetworkLoader(同文件 89-103 行)只 fetch 固定的 .json 路径:${base}/app.json${base}/pages${path}.json,并且直接 res.json()

同一个 README 的 ## Metadata Loading 一节(#3537 / PR #3581 补、#3594 又改过)已经把真相写清楚了:元数据要么是 src/app-data/**/*.json,要么是 ?api= 指向的后端返回的 JSON。所以第 1 步与本文件自己的另一节直接矛盾。

顺带,第 1 步也没说文件该放哪 —— 按 §Metadata Loading,src/app-data/ 是 git-ignored 且新 clone 下不存在的目录,读者照第 1 步在别处建文件不会有任何效果(每次加载返回 null,页面渲染成 404)。

建议

#3533 同源(文档不许描述实现里不存在的能力),但比那几条轻:把第 1 步改成与 §Metadata Loading 一致的说法即可,例如"在 src/app-data/ 下建 app.jsonpages/*.json(或用 ?api= 指向一个供这两类 JSON 的后端)",而不是"Create a schema file (JSON or TypeScript)"。

同一节第 3 步 "Edit the schema - changes reload automatically" 对 LocalBundleLoaderimport.meta.glob 这条路是成立的(Vite HMR),对 ?api= 那条不成立 —— 一并核一下更好。

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions