引言:为什么 TypeScript 找不到我的文件?
\n\n您打开一个 TypeScript 项目,启动构建,然后突然——砰!——一盆冷水浇下来,出现消息:tsconfig.json: Build:No inputs were found in config file。熟悉吗?如果您曾经配置过 TypeScript,那么您很可能见过这个错误。它吓唬新手,也惹恼专业人士。但别急着抓狂或咒骂微软。
在本文中,我们不仅会展示如何快速消除这个错误。我们还会剖析它的本质:它为什么会出现,哪些场景会导致它,以及如何配置 tsconfig.json 让您再也看不到这条消息。这对刚开始学习 TypeScript 的人和想更深入了解编译器机制的人都很有用。
是的,我们将用中文生动地讲解,并附上示例。开始吧!
\n\n错误 "Build:No inputs were found in config file" 是什么意思?
\n\n如果用人类语言翻译编译器语言,TypeScript 在告诉您:"我不知道要编译哪些文件。您让我构建项目,但没有指定源代码在哪里。" 编译器 tsc 会查找 .ts 和 .tsx 文件,但在您(或它自己)指定的目录中一个也找不到。
这个错误通常出现在两种典型情况下:
\n- \n
- 您刚刚在空文件夹中创建了
tsconfig.json。 \n - 您错误地配置了
include、exclude或rootDir字段。 \n
让我们详细分析每个原因,这样您不仅能复制解决方案,还能理解它为什么有效。
\n\n原因 #1:项目中没有任何 TypeScript 文件
\n\n这是最平凡但也最常见的原因。您在一个没有任何 .ts 文件的文件夹中创建了 tsconfig.json。编译器诚实地查找——但什么也没找到。
问题示例:
\nmy-project/\n├── tsconfig.json\n└── (什么都没有了)\n\n运行 npx tsc——然后得到错误。解决方案显而易见:至少创建一个 index.ts 文件。
如何修复:
\nmy-project/\n├── tsconfig.json\n├── src/\n│ └── index.ts # <-- 它来了,救星!\n\n但是,如果文件存在而错误仍然出现呢?那我们就得深入挖掘了。
\n\n原因 #2:include 字段中的路径指定错误
\n\ntsconfig.json 中的 include 字段告诉编译器:"在这里查找文件"。如果您指定了一个不存在的文件夹或路径写错了,编译器将什么也找不到。
错误配置:
\n{\n "compilerOptions": {\n "target": "ES2020",\n "module": "commonjs",\n "outDir": "./dist"\n },\n "include": ["src/**/*"] // 而 src 文件夹并不存在!\n}\n\n在这个例子中,src 文件夹不存在。编译器诚实地尝试根据模式 src/**/* 查找文件,找不到——然后报错。
如何修复:
\n- \n
- 检查您在
include中指定的文件夹是否存在。 \n - 确保该文件夹中有
.ts或.tsx文件。 \n - 使用相对路径。如果您的
tsconfig.json在根目录,而源代码在src/中,请写"src/**/*"。 \n
正确配置:
\n{\n "compilerOptions": {\n "target": "ES2020",\n "module": "commonjs",\n "outDir": "./dist"\n },\n "include": ["src/**/*"]\n}\n// 确保 src 文件夹存在并包含 .ts 文件\n\n原因 #3:include 和 exclude 之间的冲突
\n\n有时您在 include 中指定了一个文件夹,但随后在 exclude 中将其排除