环境变量
本页汇总 ttsc 读写的环境变量,标注谁设、谁读、作用。用于调试进程握手与覆盖默认行为。来源主要是 runBuild.ts、transformProjectInMemory.ts、buildSourcePlugin.ts、loadProjectPlugins.ts、Go 入口。
进程握手变量(JS 设、原生宿主读)
nativePluginEnv(runBuild.ts:126、transformProjectInMemory.ts:297)在 spawn 原生宿主时注入,遵循"已存在则不覆盖"(X ?? default):
用户覆盖变量
ttsx 运行时变量
插件描述符加载变量
loadDescriptorViaTtsx(loadProjectPlugins.ts:666)经 ttsx 加载 .ts 描述符时设:
Go 构建环境变量(进缓存键)
buildSourcePlugin.ts 的 GO_BUILD_ENV_KEYS(~50 个,buildSourcePlugin.ts:20)与 EXTERNAL_GO_BUILD_ENV_KEYS(C 工具链相关)被哈希进缓存键,让 target/build-tag/cgo/FIPS/external-link 变体不碰撞。关键的几个:
CC/CXX 等命令类变量哈希进 值 + 命令二进制 SHA-256,换编译器实现会失效缓存。
全局缓存定位变量
resolveUserCacheRoot(buildSourcePlugin.ts:951)按平台约定定位全局缓存:
基准测试变量(experimental/benchmark)
来自 .codex/skills/benchmark/SKILL.md:
不变量
- 进程握手变量遵循"已存在不覆盖",让外层显式设置生效。
- Go 构建变量进缓存键,改它们会重建插件二进制。
TTSC_PLUGIN_DESCRIPTOR_LOAD全图禁插件,是防自托管死锁的关键。