← [ BACK_TO_NOTES ]

TypeScript 中的 composite

说明 composite 为什么是 project references 的基础,以及它会给 rootDir、include 和 declaration 带来哪些约束。

#dev #typescript #concept #growing

[!info] related notes

TypeScript 中的 composite

一句话定义

composite 会把当前项目变成“可被其他 TypeScript 项目引用的构建单元”。

核心机制 / 工作原理

当开启 composite 时,TypeScript 会进入一种更严格、也更适合项目级增量构建的模式。

官方文档强调,它会带来几件事:

  • 如果没显式设置 rootDir,默认值变成 tsconfig 所在目录
  • 所有实现文件都必须被 include 或 files 覆盖
  • declaration 默认为 true

最小例子 / 最小场景

{
  "compilerOptions": {
    "composite": true,
    "declaration": true
  }
}

常见用途

  • project references
  • monorepo 中的库包
  • 需要增量 build 与跨项目类型消费的仓库

边界与易混淆点

composite 不只是“更快”

它的意义不只是性能,还包括:

  • 输出边界更清晰
  • 引用关系更显式
  • build mode 更可控

composite 会让一些以前“能混过去”的配置暴露问题

比如:

  • 文件没被 include 到
  • rootDir 不明确
  • 声明文件策略没配好

参考信息

创建于 2026/5/15 更新于 2026/7/15
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本