TypeScript构建错误TS6305:输出文件未从源文件构建求助
解决TS6305错误:输出文件未从源文件构建
错误原因分析
这个问题是因为两个TypeScript配置文件(tsconfig.json和tsconfig.node.json)重复将src应用源码目录纳入处理范围,再加上主配置的noEmit: true设置,导致TypeScript在处理项目引用时出现逻辑冲突:它期望src下的文件被构建生成输出,但主配置明确禁止了文件输出,而node配置错误地越界处理了应用源码。
解决方案
步骤1:修正tsconfig.node.json的处理范围
tsconfig.node.json的职责是处理Node环境相关文件(比如vite.config.ts、自定义脚本、插件),不应包含应用源码目录src。修改其include字段:
{ "compilerOptions": { "composite": true, "skipLibCheck": true, "module": "ESNext", "moduleResolution": "bundler", "jsx": "react-jsx", "paths": { "~src/*": ["./src/*"], "~assets/*": ["./src/assets/*"], "~pages/*": ["./src/pages/*"], "~public/*": ["./src/public/*"] }, "allowSyntheticDefaultImports": true }, "include": ["vite.config.ts", "scripts", "plugins"] }
步骤2:清理残留的.d.ts文件
如果src目录下存在手动生成或遗留的.d.ts文件(比如报错提到的src/utilities/functions.d.ts),直接删除它们。这类文件会干扰TypeScript的类型推导逻辑,导致它错误判定输出文件与源文件不匹配。
步骤3:重新执行构建命令
运行tsc && vite build即可:
tsc会使用主tsconfig.json执行类型检查(因noEmit: true不会生成任何文件)vite build负责编译打包应用代码- 两个配置文件的处理范围完全分离,不会再出现冲突错误
内容的提问来源于stack exchange,提问作者cheeze
相关产品推荐
相关产品推荐

