症状
出现 error TS5055: Cannot write file ... because it would overwrite input file,常在修改编译选项或加入 allowJs 后立即发生。
诊断
对比输出与输入:
tsc --listEmittedFiles
若某个输出路径同时出现在输入集合中,说明两者重叠。
修复
将输出与源码分离:
{
"compilerOptions": {
"rootDir": "src",
"outDir": "dist"
},
"include": ["src/**/*"],
"exclude": ["dist", "node_modules"]
}
清除源码树中陈旧的编译产物。
验证
再次运行 tsc;它写入 dist 且不报 TS5055,–listEmittedFiles 显示没有输出路径落在 src 内,确认输入与输出互不相交。