TypeScript开启declaration: true后--watch监听模式构建极慢如何优化?
可行优化方案
- 开启增量编译配置
在tsconfig.json中新增incremental: true,TS会生成.tsbuildinfo缓存文件记录编译状态,开启declaration时也能跳过无变更文件的类型检查与d.ts生成,是该场景下收益最高的配置项。 - 优化文件匹配规则
检查tsconfig.json的include与exclude配置,确保exclude中包含node_modules、输出目录(如dist/build)、不需要生成d.ts的文件(如测试文件、mock文件),减少TS遍历的文件范围。 - 开启
skipLibCheck: true
该配置会跳过第三方依赖包的d.ts类型检查,可减少大量无意义的重复校验耗时,对项目自身的类型检查没有影响。 - 大项目拆分用项目引用
如果代码库体积较大,可拆分为多个子模块,配置composite: true与项目引用(references),修改单个子模块时只会编译当前模块和依赖它的上游模块,不会触发全量编译。 - 拆分构建流程
开发阶段如果不需要实时生成d.ts,可仅在生产构建时开启declaration,本地开发watch模式关闭该配置,编辑器性能需求可通过tsc --noEmit的后台校验满足。如果必须实时生成d.ts,可搭配emitDeclarationOnly: true让TS仅输出d.ts文件,跳过JS代码生成步骤,进一步减少耗时。
内容的提问来源于stack exchange,提问作者James Flight
相关产品推荐
相关产品推荐

