环境变量

本页汇总 ttsc 读写的环境变量,标注谁设、谁读、作用。用于调试进程握手与覆盖默认行为。来源主要是 runBuild.tstransformProjectInMemory.tsbuildSourcePlugin.tsloadProjectPlugins.ts、Go 入口。

进程握手变量(JS 设、原生宿主读)

nativePluginEnvrunBuild.ts:126transformProjectInMemory.ts:297)在 spawn 原生宿主时注入,遵循"已存在则不覆盖"(X ?? default):

变量设置方读取方作用
TTSC_NODE_BINARYmergeEnv / nativePluginEnv旁车回调 Node 不必搜 PATH
TTSC_TSGO_BINARYnativePluginEnv / runTtsx旁车 / ttsx 子进程tsgo 二进制位置
TTSC_TTSX_BINARYnativePluginEnv / withPluginLoaderEnv插件加载器加载 .ts 插件描述符
TTSC_LINKED_PLUGINS_JSONnativePluginEnv(transform 阶段、有链接源时)driver.loadLinkedPluginState链接插件 manifest,按注册顺序配对
TTSC_LSP_PLUGINS_JSONJS launchercmd/ttscserverNativePluginSourceLSP 插件 manifest

用户覆盖变量

变量读取方作用
TTSC_CACHE_DIRbuildSourcePlugin / 清理逻辑 / TtscCompiler覆盖插件缓存根
TTSC_GO_BINARYresolveGoCompilerbuildSourcePlugin.ts:980覆盖 Go 编译器(否则用打包 SDK)
TTSC_BINARYresolveBinary覆盖平台 helper 二进制

ttsx 运行时变量

变量设置方读取方作用
TTSX_RUNTIME_MANIFESTrunTtsxrunTtsx.ts:311运行时钩子指向已构建入口项目 emit 的 manifest
NODE_OPTIONS(追加)runTtsxrunTtsx.ts:306子进程runtimeHookPreload.js 传播给 spawn 的 worker

插件描述符加载变量

loadDescriptorViaTtsxloadProjectPlugins.ts:666)经 ttsx 加载 .ts 描述符时设:

变量作用
TTSC_PLUGIN_DESCRIPTOR_LOAD=1全图禁插件,防自托管 transform 死锁
TTSC_PLUGIN_DESCRIPTOR_OUT描述符 JSON 输出路径
TTSC_PLUGIN_ENTRY描述符入口路径
TTSC_PLUGIN_CONTEXT序列化的工厂上下文(binary/cwd/dirname/filename/plugin/projectRoot/tsconfig)

Go 构建环境变量(进缓存键)

buildSourcePlugin.tsGO_BUILD_ENV_KEYS(~50 个,buildSourcePlugin.ts:20)与 EXTERNAL_GO_BUILD_ENV_KEYS(C 工具链相关)被哈希进缓存键,让 target/build-tag/cgo/FIPS/external-link 变体不碰撞。关键的几个:

变量作用
GOOS GOARCH GOARM GOAMD64目标平台/架构
CGO_ENABLED CC CXXcgo 与 C 编译器
GOFLAGS GOEXPERIMENT GOFIPS140构建标志
GOROOTGo 根(特殊处理:哈希相关文件而非路径字符串)
GOTOOLCHAINtoolchain 选择

CC/CXX 等命令类变量哈希进 值 + 命令二进制 SHA-256,换编译器实现会失效缓存。

全局缓存定位变量

resolveUserCacheRootbuildSourcePlugin.ts:951)按平台约定定位全局缓存:

变量平台作用
XDG_CACHE_HOMELinux缓存根(绝对路径时优先)
LOCALAPPDATAWindows缓存根
HOMEmacOS / 通用Library/Caches / .cache 基底

基准测试变量(experimental/benchmark)

来自 .codex/skills/benchmark/SKILL.md

变量作用
TTSC_BENCH_RUNS(默认 5)每 cell 采样次数
TTSC_BENCH_WARMUP(默认 1)预热次数
TTSC_BENCH_RETRIES(默认 2)race 失败重试
TTSC_BENCH_REQUIRE_QUIET=1负载警告升成硬错误(发布 sweep 用)
TTSC_BENCH_SKIP_LOAD_CHECK=1静音负载检查(开发用)
TTSC_BENCH_SEQUENTIAL=1低磁盘逐个克隆
TTSC_BENCH_SKIP_PACK=1跳过打包
TTSC_TARBALLS_CURRENT=1package:tgz 只打当前平台

不变量

  • 进程握手变量遵循"已存在不覆盖",让外层显式设置生效。
  • Go 构建变量进缓存键,改它们会重建插件二进制。
  • TTSC_PLUGIN_DESCRIPTOR_LOAD 全图禁插件,是防自托管死锁的关键。

接下来