起因
每次打包经过type-check
会生成.tsbuildinfo
文件。强迫症看不得这些,于是问问AI
得出解决方法。
解决
解释
tsconfig.json
文件中的 composite
选项用于启用或禁用当前项目对 项目引用(Project References)
的支持。当其值设为 false
时,表示该项目不应参与项目引用编译。
以下是关于 composite
选项及将其设为 false
后的具体影响的详细说明:
禁用项目引用:将 "composite": false
显式告知 TypeScript
该项目不应被视为一个可被其他项目通过项目引用方式编译的模块化子项目。这意味着其他项目不能通过 tsconfig.json
文件中的 references
部分引用此项目作为依赖项。
独立编译:设置为 false
后,该项目将在单独的编译上下文中独立编译,不受任何项目引用的影响。它不会生成输出到 .d.ts
联合声明文件(如果未明确指定 declaration
选项),也不会生成用于项目间类型检查的 .tsbuildinfo
文件。
编译速度与增量构建:对于非复合项目(即 composite: false
),TypeScript 编译器通常只关注当前项目内的源代码,不会尝试去分析或跟踪其依赖的其他项目的变更。因此,非复合项目的编译速度可能更快,但不具备基于项目引用的增量构建能力。每次编译时,即使依赖的项目没有变化,也可能需要重新编译整个项目。
适合小型项目或独立应用:设置 composite: false
适用于小型项目、独立应用或不需要与其他项目共享类型信息的场景。在这种情况下,简化编译流程可以降低配置复杂度,提高开发效率。