TypeScript 修复错误 No inputs were found in config file

当我们尝试构建一个不包含任何 TypeScript 文件的项目时,会出现错误“No inputs were found in config file”。 要解决此错误,需要在项目的根目录中添加一个扩展名为 .ts 的空文件,并在必要时重新启动 IDE。

TypeScript 修复错误 No inputs were found in config file

$ tsc
error TS18003: No inputs were found in config file '/Users/zadmei/workspace/ts/tsconfig.json'. Specified 'include' paths were '["src/**/*"]' and 'exclude' paths were '["node_modules"]'.


Found 1 error.

我们需要做的第一件事是确保项目至少包含一个扩展名为 .ts 的文件。

如果没有,我们可以创建一个带有 .ts 扩展名的空文件来消除错误。

创建一个名为 placeholder.ts 的文件,其内容如

export {};

如果在 tsconfig.json 文件中设置了 include 数组,请确保在指定目录中创建该文件。

{
  "compilerOptions": {
    // ... 配置项
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

例如,上面 tsconfig.json 文件中的 include 数组在 src 目录中查找文件,因此我们必须在 src 中创建占位符文件。

如果我们尚未设置 include 数组,请在项目的根目录(tsconfig.json 旁边)中创建占位符文件。

如果项目中已有文件,请重新启动 IDE 和 TypeScript 服务器。

VSCode 经常出现故障并需要重新启动。 在这种情况下,请打开一个扩展名为 .ts 或 .js 的文件,然后重新启动编辑器以获取它。

导致错误的另一件事是,如果我们错误地将 TypeScript 项目中的所有文件添加到 exclude 数组中。

{
  "compilerOptions": {
    // ... 配置项
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

如果我们未设置 include 数组设置,则如果未指定文件设置,则默认为 **,否则为空数组 []

确保仅排除要过滤掉的文件。 如果有一个与项目中所有文件匹配的 exclude 模式,那就是错误的原因。

大多数时候,TypeScript 只需要一个项目的入口点就可以成功编译并解决错误。

如果我们没有在项目中使用 TypeScript,但仍然出现错误,并且重新启动 IDE 没有帮助,则可以在项目的根目录中创建一个 tsconfig.json 文件来简单地消除错误。

{
  "compilerOptions": {
    "allowJs": false,
    "noEmit": true
  },
  "exclude": ["src/**/*", "your-other-src/**/*"],
  "files": ["placeholder.ts"]
}

并在 tsconfig.json 文件旁边创建一个 placeholder.ts 文件。

placeholder.ts

export {};

重新启动 IDE,错误应该得到解决。

上面示例中的 tsconfig.json 文件看起来要从编译中排除所有源文件,并且只需要一个文件作为示例中的入口点 (placeholder.js)。

这个 tsconfig.json 文件的全部意义在于消除不使用 TypeScript 的项目中的错误。