Online Free Tools
  • Home
  • Dev Logs
Navigation
HomeDev Logs

修复 build:site 因 siteConfig 初始化自引用导致的 TDZ 报错 | Dev Logs

Back to Logs

日期:2026年01月11日01时21分 摘要:修复 build:site 因 siteConfig 初始化自引用导致的 TDZ 报错 【question】

cloudflare-workers-openapi@0.0.1 build:site node scripts/build-site.mjs

file:///Users/xuli/vscodeai/onlinefreetools/scripts/site/config.mjs:20 ...siteConfig.languages.map((l) => l.code), ^

ReferenceError: Cannot access 'siteConfig' before initialization at file:///Users/xuli/vscodeai/onlinefreetools/scripts/site/config.mjs:20:18 at file:///Users/xuli/vscodeai/onlinefreetools/scripts/site/config.mjs:29:5 at ModuleJob.run (node:internal/modules/esm/module_job:274:25) at async onImport.tracePromise.proto (node:internal/modules/esm/loader:644:26) at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:98:5)

Node.js v23.10.0 【try to solve】 原因是 siteConfig 对象初始化期间在 enabledLangs 的 IIFE 里自引用了 siteConfig.languages,触发 TDZ(在初始化完成前访问自身)。

修复方式:把 languages 抽成独立常量,在构造 siteConfig 时引用该常量,并在 enabledLangs 计算里使用 languages,避免在初始化阶段访问 siteConfig。

修复后重新执行 env SITE_LANGS=zh,en SITE_DEFAULT_LANG=en npm run build:site,构建成功并输出 Built site for langs: zh, en。 【执行操作】

  • 修改:scripts/site/config.mjs
  • 运行:env SITE_LANGS=zh,en SITE_DEFAULT_LANG=en npm run build:site
Online Free Tools · Learning project · Iterating