越界发现,记录于 #3520(给 examples/console-starter 写 README)期间通读 .env 与 import.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 用它作 ObjectStackAdapter 的 baseUrl,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.production 与 examples/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
越界发现,记录于 #3520(给
examples/console-starter写 README)期间通读.env与import.meta.env用法时。未在该 PR 中顺手修改。现象
content/docs/有两处教读者设置 ObjectUI 自身的环境变量,而这两个变量在整个仓库里没有任何源码读取。1.
content/docs/guide/deployment.md:159-170的环境变量表紧接着的
.env.production示例、第 176/179/182 行的 vercel/railway/netlify 三条命令、第 185 行的 Tip、第 250 行的构建命令,都建立在这两个变量之上。2.
content/docs/guide/console.md:93-95实测
真实变量是
VITE_SERVER_URL:packages/app-shell/src/providers/AdapterProvider.tsx:101用它作ObjectStackAdapter的baseUrl,auth / i18n / action / metadata-admin 端点也全部挂在它上面。而两个被文档教的变量:
即
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 次 —— 文档站从未提过那个真正生效的变量。影响
按 deployment.md 部署的读者会去 vercel/railway/netlify 上设
VITE_API_URL,而应用仍然走同源;按 console.md 跑VITE_API_URL=http://localhost:3000 pnpm console的读者会发现连不上后端却看不出原因。这不是"陈旧描述",是一条会让读者配错、且没有报错的指引。不在本单范围内的相关观察
apps/console/.env.development/.env.production与examples/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