Skip to content

文档站教读者配 VITE_API_URL / VITE_USE_MOCK_SERVER,两个变量全仓无任何源码读取 #3527

Description

@yinlianghui

越界发现,记录于 #3520(给 examples/console-starter 写 README)期间通读 .envimport.meta.env 用法时。未在该 PR 中顺手修改。

现象

content/docs/ 有两处教读者设置 ObjectUI 自身的环境变量,而这两个变量在整个仓库里没有任何源码读取。

1. content/docs/guide/deployment.md:159-170 的环境变量表

| Variable | Default | Description |
| `VITE_USE_MOCK_SERVER` | `"true"` | Enable MSW mock server for local development. Set to `"false"` for production builds that hit a real API. |
| `VITE_API_URL` | — | Base URL for the ObjectStack API (e.g. `https://api.example.com`). |

紧接着的 .env.production 示例、第 176/179/182 行的 vercel/railway/netlify 三条命令、第 185 行的 Tip、第 250 行的构建命令,都建立在这两个变量之上。

2. content/docs/guide/console.md:93-95

1. Set the `VITE_API_URL` environment variable:
   VITE_API_URL=http://localhost:3000 pnpm console

实测

真实变量是 VITE_SERVER_URL:

$ grep -rn "VITE_SERVER_URL" --include=*.ts --include=*.tsx packages/ apps/ examples/ | grep -v node_modules | wc -l
29

packages/app-shell/src/providers/AdapterProvider.tsx:101 用它作 ObjectStackAdapterbaseUrl,auth / i18n / action / metadata-admin 端点也全部挂在它上面。

而两个被文档教的变量:

$ grep -rn "VITE_API_URL" --include=*.ts --include=*.tsx --include=*.js --include=*.mjs --include=*.json packages/ apps/ examples/ scripts/ | grep -v node_modules
(无输出)

$ grep -rn "VITE_USE_MOCK_SERVER" --include=*.ts --include=*.tsx --include=*.mts --include=*.json packages/ apps/ examples/ | grep -v node_modules
apps/console/vercel.json:4:  "buildCommand": ... VITE_USE_MOCK_SERVER=false VITE_BASE_PATH=/ vite build

VITE_USE_MOCK_SERVER 只出现在一条构建命令的环境里(以及 playwright.import-console.config.ts 的注释、content/docs/guide/deployment.md、和 apps/console/.env.* / examples/console-starter/.env.* 四个 .env 文件),没有任何代码分支读它。deployment.md 说它 "Enable MSW mock server",但 apps/console 今天没有 MSW 引导路径读取该开关。

反向核对:VITE_SERVER_URL 在整个 content/ 下出现 0 次 —— 文档站从未提过那个真正生效的变量。

$ grep -rln "VITE_SERVER_URL" content/
(无输出)

影响

按 deployment.md 部署的读者会去 vercel/railway/netlify 上设 VITE_API_URL,而应用仍然走同源;按 console.md 跑 VITE_API_URL=http://localhost:3000 pnpm console 的读者会发现连不上后端却看不出原因。这不是"陈旧描述",是一条会让读者配错、且没有报错的指引。

不在本单范围内的相关观察

apps/console/.env.development / .env.productionexamples/console-starter/.env.*(后者是逐字节抄前者)都带着这个不被读取的 VITE_USE_MOCK_SERVER=false。删或留是另一个判断,列在这里只是为了说明这条死变量的传播路径。

备注:查重未能完成

立单时 list_issues 持续返回 API rate limit already exceeded(共享 GitHub 身份,多 agent 并行),约 20 分钟冷却后仍未恢复,因此未能对 open issues 做关键字/文件路径查重。若已有同源单,请按惯例 race-close 本单。


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdocumentationImprovements or additions to documentationpm:queue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions