TypeScript 中的 tsBuildInfoFile
说明 tsBuildInfoFile 如何指定 TypeScript 增量构建信息的落盘位置,以及它为什么常和 incremental 或 composite 一起出现。
#tech / dev
#resource / typescript
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: TypeScript MOC
- 配置入口: tsconfig 使用详解
- 并列概念: TypeScript 中的 incremental, TypeScript 中的 composite, tsc
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 里更值得显式配置
因为多包仓库里如果不关心缓存文件位置,后续清理、缓存命中和构建诊断都容易变乱。
参考信息
- TSConfig
tsBuildInfoFile: https://www.typescriptlang.org/tsconfig/tsBuildInfoFile.html