TypeScript 中的 incremental
说明 incremental 如何通过保存项目图缓存来加快后续编译,以及它和 composite、project references、tsc build mode 的关系。
#tech / dev
#resource / typescript
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: TypeScript MOC
- 配置入口: tsconfig 使用详解
- 并列概念: TypeScript 中的 composite, TypeScript 中的 references, TypeScript 中的 tsBuildInfoFile, tsc
TypeScript 中的 incremental
一句话定义
incremental 让 TypeScript 把上一次编译的项目图信息缓存下来,以加快后续编译。
核心机制 / 工作原理
当配置:
{
"compilerOptions": {
"incremental": true
}
}
时,TypeScript 会把构建状态保存到磁盘上的 build info 文件里。
这样下一次编译时,它就不必从零重新分析整个项目。
如果你还想控制这份缓存文件具体写到哪里,可以继续看:
最小例子 / 最小场景
{
"compilerOptions": {
"incremental": true
}
}
这在以下场景里最常见:
- 大型单仓项目
- 需要频繁跑
tsc的本地开发流程 - monorepo build / watch
边界与易混淆点
它是“缓存机制”,不是“项目依赖结构”
incremental 负责的是:
- 后续编译如何更快
它不负责定义:
- 跨项目依赖方向
- 引用顺序
这些更接近:
referencestsc -b
它和 composite 有关联,但不等价
composite 更偏“可被引用的构建单元”;
incremental 更偏“把上次分析结果缓存起来”。
两者经常一起出现,但关注点不同。
它不会改变类型系统语义
这个选项主要影响构建性能和工作流,不改变代码本身的类型规则。
参考信息
- TSConfig
incremental: https://www.typescriptlang.org/tsconfig/incremental.html