← 中文资源

简体中文版本

TypeScript TS5055: 无法写入文件,因为会覆盖输入文件

修复 TS5055:编译输出目录与源码目录重叠,或把此前生成的文件也纳入了输入。

阅读英文原文

症状

出现 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 内,确认输入与输出互不相交。