TypeScript 中的 tsBuildInfoFile

说明 tsBuildInfoFile 如何指定 TypeScript 增量构建信息的落盘位置,以及它为什么常和 incremental 或 composite 一起出现。

#tech / dev #resource / typescript #type / concept #status / growing

[!info] related notes

TypeScript 中的 tsBuildInfoFile

一句话定义

tsBuildInfoFile 用来指定 TypeScript 增量构建信息文件写到哪里。

核心机制 / 工作原理

官方文档说明,这个选项允许你显式指定:

  • incremental compilation information 的存储文件路径

它本质上是在回答:

TypeScript 用来缓存上次构建状态的 build info 文件,应该放在哪里。

这类文件之所以重要,是因为它们能帮助更大的 TypeScript 代码库更快完成后续构建。

最小例子 / 最小场景

{
  "compilerOptions": {
    "incremental": true,
    "tsBuildInfoFile": "./.tsbuildinfo"
  }
}

这在以下场景常见:

  • monorepo 中每个包都想把缓存文件放到固定位置
  • 想避免默认 build info 文件散落在不理想的位置
  • CI 或本地缓存策略需要更明确的落盘路径

边界与易混淆点

它不是“开启增量编译”的总开关

真正决定是否使用增量构建的仍然是:

  • incremental
  • 或相关 build/composite 语境

tsBuildInfoFile 更像是:

  • 已经要写缓存时,缓存文件放哪

它主要是工程层面的文件位置控制

这个选项本身不改变:

  • 类型规则
  • 模块解析
  • 输出模块格式

它影响的是构建缓存文件的组织方式。

monorepo 里更值得显式配置

因为多包仓库里如果不关心缓存文件位置,后续清理、缓存命中和构建诊断都容易变乱。

参考信息

创建于 2026/5/15 更新于 2026/5/27