ChatGPT解决这个技术问题 Extra ChatGPT

tsconfig.json:构建:在配置文件中找不到输入

我有一个 ASP.NET 核心项目,当我尝试构建它时出现此错误:

error TS18003: Build:No inputs were found in config file 'Z:/Projects/client/ZV/src/ZV/Scripts/tsconfig.json'. Specified 'include' paths were '["**/*"]' and 'exclude' paths were '["../wwwroot/app","node_modules/*"]'.
1>         The command exited with code 1.
1>       Done executing task "VsTsc" -- FAILED.

这是我的 tsconfig.json 文件:

{
  "compileOnSave": true,
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es5", "dom" ],
    "module": "commonjs",
    "moduleResolution": "node",
    "noEmitOnError": true,
    "noImplicitAny": false,
    "outDir": "../wwwroot/app/",
    "removeComments": false,
    "sourceMap": true,
    "target": "es6"
  },
  "exclude": [
    "../wwwroot/app",
    "node_modules/*"
  ]
}

这是一个错误还是我做错了什么?我最近确实将 Visual Studio 2015 升级到更新 3。以前有人遇到过这种情况吗?

这是预期的行为。你需要有一些东西来编译。
@AluanHaddad 你说这好像是事实。您能否为您的主张提供证据。
您的来源应该是您在 tsconfig 上的“包含”中指向的位置
默认的 tsconfig.json 没有 "include" 和 "exclude" 属性,所以我必须添加两者。由于某种原因,似乎两者都是必需的

C
Community

将一个空的 typescript 文件添加到 typescript scripts 文件夹(您的 tsconfig 文件的位置)以满足 typescript 编译器的要求。


这是什么意思?
@Christian Matthew这意味着,您需要将至少一个打字稿文件添加到您的应用程序要满足打字稿编译器的文件夹中。
脚本文件夹是什么意思。能详细点吗??
具有讽刺意味的是..我很久以前就使用过这个答案(添加了 tsconfig 并解决了这个问题)。当我将 Vue 添加到项目中时,问题再次弹出......所以我不得不删除我过去添加的 tsconfig,它起作用了:P
谢谢。为我工作。但是任何人都可以解释背后实际发生的事情吗?
d
desoga

您也可以尝试重新启动代码编辑器。这也很有效。


这对我有用,Eclipse + CodeMix 插件。谢谢。
适用于 VSC。您可以在 VSC 中重新启动 TS 服务器。谢谢。
在我尝试这个之前,我一直在拉我的头发:)
F
FrostyDog

这可能是因为打字稿服务器找不到 include 数组描述的任何文件:

// tsconfig.json
{
  //...
  "include": [
    "./src/"
  ],
}

如果您使用的是 VSCode,您可以在编辑器中超级轻松地重新启动 TS 服务器,以提示它重新评估文件,如下所示:

导航到任何 .ts 或 .tsx 文件 打开命令面板(在 Mac 上为 CMD + SHIFT + P) 运行 TypeScript:重新启动 TS 服务器命令:


你如何获得 TypeScript 命令?我只有例如 File、Git、GitLens 等
@Leo 确保您在查找命令时正在查看 .js/.jsx/.ts/.tsx 文件。例如,当您查看 .html 文件时,该命令不可用
重新启动ts服务器为我做了,不知道这是一件事,谢谢
这对我有用,其他人没有帮助,因为我确实有 .ts 文件
这是最好的答案,因为它更深入地描述了问题发生的原因(具体参考 tsconfig.json)并包括编辑器出错的情况。 +1
T
TreeAndLeaf

我根本没有在这个项目中使用 TypeScript,所以不得不处理这个问题非常令人沮丧。我通过将 tsconfig.json 和一个空的 file.ts 文件添加到项目根目录来解决此问题。 tsconfig.json 包含以下内容:

{
  "compilerOptions": {

    "allowJs": false,
    "noEmit": true // Do not compile the JS (or TS) files in this project on build

  },
  "compileOnSave": false,
  "exclude": [ "src", "wwwroot" ],
  "include": [ "file.ts" ]
}

这也可用于 jsconfig.js。我也没有使用 TS,但 Vue 和 Vetur 出于某种原因开始需要这个。这对他们来说是一个非常糟糕的架构。
S
Susampath

如果您使用 vs 代码进行编辑,请尝试重新启动编辑器。这种情况解决了我的问题。我认为这是编辑器缓存的问题。


P
Pran Kumar Sarkar

当您通过 tsc --init 创建 tsconfig.json 文件时,它会注释输入和输出文件目录。所以这是错误的根本原因。

要解决此问题,请取消注释这两行:

"outDir": "./", 
"rootDir": "./", 

最初它在取消注释后看起来像上面。

但是我所有的 .ts 脚本都在 src 文件夹中。所以我指定了/src。

"outDir": "./scripts", 
"rootDir": "./src", 

请注意,您需要在 rootDir 中指定 .ts 脚本的位置。


C
Corey Cole

我的所有 .ts 文件都在一个 src 文件夹中,该文件夹是我的 tsconfig.json 的同级文件夹。当我的 include 看起来像这样时,我收到了这个错误(它以前工作过,一些依赖项升级导致出现错误):

"include": [
    "src/**/*"
],

将其更改为此解决了我的问题:

"include": [
    "**/*"
],

d
double-beep

我收到了这个错误:

在配置文件“tsconfig.json”中找不到输入。

指定的 include 路径是 '["**/*"]'exclude 路径 '["**/*.spec.ts","app_/**/*.ts","**/*.d.ts","node_modules"]'

我有一个 .tsconfig 文件,它从 ./src 文件夹中读取 TS 文件。

这里的问题是源文件夹不包含任何 .ts 文件,而我正在运行 tslint。我通过从我的 gulp 文件中删除 tslint 任务解决了问题,因为我没有任何要编译和检查的 .ts 文件。


r
rose specs

index.js 更改为 index.ts 为我修复了此错误。 (在此之前我没有任何 .ts 文件)。

注意:请记住将您引用 index.js 的任何位置更改为 index.ts,当然,您引用主文件的位置除外。按照惯例,这可能在您的 libdist 文件夹中。我的tsconfig.json

{
  "compilerOptions": {
    "target": "es2016",
    "module": "commonjs",
    "outDir": "./dist",
    "strict": true,
    "esModuleInterop": true,
    "inlineSourceMap": true,
    "noImplicitAny": false
  }
}

我的 outDir./dist,所以我在 package.json 中将我的 main 引用为 "main": "dist/index.js"

https://i.stack.imgur.com/n26rD.png


N
Nikhil Nayyar

在现代打字稿配置中,只需设置“allowJs”,无需在包含目录中添加任何空的 .ts 文件,例如“src”(在包含数组中指定)

tsconfig.json

{
  "compilerOptions": {
    "allowJs": true,
   ...
  },
  "include": [
    "src"
  ]
}

这很好用,对于遵循上述操作后仍然出现错误的人,只需重新启动 IDE 即可修复错误。
F
FDisk
"outDir"

应该不同于

"rootDir"

例子

    "outDir": "./dist",
    "rootDir": "./src", 

G
Gru

您需要有根 index.tsxindex.ts 文件才能使 tsc 命令工作。


N
NicoJuicy

我在根目录(visual studio)中添加了以下内容

{
  "compilerOptions": {
    "allowJs": true,
    "noEmit": true,
    "module": "system",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "sourceMap": true
  },
  "include": [
    "**/*"
  ],
  "exclude": [
    "assets",
    "node_modules",
    "bower_components",
    "jspm_packages"
  ],
  "typeAcquisition": {
    "enable": true
  }
}

只有一个空的 "exclude": [ "" ] 也可以(覆盖默认值 ./)
M
Matt Parkins

对我有用的解决方案是在配置文件中的每个包含路径之前添加一个 ./ :

"include": ["./src/**/*.d.ts", "./src/**/*.js", "./src/**/*.svelte"]

佚名

使用 Visual Studio Code 时,构建项目(即按 Ctrl + Shift + B),将您的 .ts 文件移动到 .vscode 文件夹中(我不知道为什么会这样),然后生成 TS18003 错误。我所做的是将我的 .ts 文件移出 .vscode 文件夹,回到根文件夹并再次构建项目。

项目建设成功!


它将 .tsconfig 文件放入 .vscode 文件夹。如果将其移出 .vscode 文件夹,您可能还需要编辑 .vscode/tasks.json 以指向新位置
R
Rajat Kumar

在“包含”标签中添加 .ts 文件位置,然后编译工作正常。前任。

"include": [
"wwwroot/**/*" ]

B
Big Rich

好的,在 2021 年,使用 <project>/src/index.ts 文件,以下内容对我有用:

如果 VS Code 抱怨在配置文件中没有找到输入...然后将包含更改为...

"include": ["./src/**/*.ts"]

发现上述内容为 comment of How to Write Node.js Applications in Typescript


R
RubbelDieKatz

如果您不想进行 TypeScript 编译,请根据 this post 在您的 .csproj 文件中禁用它。

只需将以下行添加到您的 .csproj 文件中:

<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

C
Cosmin

我必须将 files 项添加到 tsconfig.json 文件中,如下所示:

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "sourceMap": true,
    },
    "files": [
        "../MyFile.ts"
    ] 
}

更多详细信息:https://www.typescriptlang.org/docs/handbook/tsconfig-json.html


i
il0v3d0g

我的 VSCode 在我的 tsconfig.json 文件的开头给了我波浪线,并且有同样的错误,所以

我确保在“包含”路径中指定的文件夹中至少有一个 .ts 文件(包含路径中的一个文件夹是空的,这很好)我只是关闭了 VSCode 并重新打开它,然后解决它。 (叹..)

我的文件夹结构

    tsconfig.json
    package.json
    bar/
         myfile.ts
    lib/
         (no file)

我的 tsconfig.json

   "compilerOptions": { ... },
   "include": [
    "bar/**/*",
    "lib/**/*"
   ],
   "exclude": [
    ".webpack/**/*",
    ".vscode/**/*"
   ]
   

T
Tha Brad

顺便说一句,刚刚遇到了同样的问题。

如果您遇到我的情况,那么您的 tsconfig.json 可能与 .ts 文件不在同一目录中。

(在我的情况下,我愚蠢地在 .vscode 文件夹中放置了 launch.json 和 tasks.json :P)


E
Elroy Flynn

我的解决方案中有 4 个现有项目的现有 tsconfig 文件。升级到 vs2017 后,我遇到了这个问题。如 NicoJuicy 所述,通过在文件中添加(假设是默认的)包含和排除部分来修复它。


S
Sammy

对于遇到相同错误的任何人,应尝试将“节点模块”添加到排除选项

{
   "compilerOptions": {
     ...
   },
   "include": [
      "./src/**/*.ts"
   ],
   "exclude": [
      "./out.d.ts",
      "node_modules",
   ]
}

u
user764754

我有一个不适用于任何 .ts 文件的 tsconfig.json 文件。它在一个单独的文件夹中。相反,我只通过 "extends": "../Configs/tsconfig.json" 将它用作其他 tsconfig 文件的基础。一旦我将基本配置文件重命名为其他内容,例如 base-tsconfig.json(并更新了 extends 语句),错误就消失了,扩展仍然有效。


B
Bakhtiiar Muzakparov

我遇到了同样的错误,就我而言,这是因为 vscode 无法识别 .ts 文件。

它将它视为文本文件,我不得不重命名它以删除一个字母并将其重新添加以使其正常工作。


L
Laurence73

我在通过 Visual Studio 2019 将我的项目打包成 nugets 时经常遇到这个问题。在寻找了多年的解决方案之后,我似乎已经通过遵循本文中的建议解决了这个问题

MSBuild & Typescript

特别是关于 <TypeScriptCompile /> 的部分,其中我使用 Include 运算符包含了我的所有 .ts 资源,并使用 Remove 运算符排除了其他资源,例如 node_modules。然后我删除了每个有问题的项目中的 tsconfig.json 文件,并且生成了 nuget 包并且没有更多错误


c
chadiusvt

当我在同一目录中制作 node_modules 文件夹的备份副本时,我收到了同样的错误。发生这种情况时,我正在尝试解决不同的构建错误。我希望这种情况对某人有所帮助。删除备份文件夹,构建将完成。


D
Dharman

我有同样的错误,因为我有这个:

"include": [ 
    "wwwroot/ts/*.ts" 
  ],
  "exclude": [ 
    "node_modules",
    "wwwroot"
  ]

出现错误是因为文件夹 wwwroot 出现在包含和排除中,您应该退出其中之一。


M
Mostafa Saadatnia

确保所有文件都有正确的名称。


d
danilo

您需要有两个文件夹,一个用于源(打字稿),另一个用于输出(javascript)。

tsconfig.json:

{
  "compilerOptions": {
...
    "outDir": "out/", 
    "rootDir": "src/", 
...

在我的情况下,添加 rootDir 属性可以解决错误。 VS2022 + Micorosoft.TypeScript.MSBuild 4.6.4。 tsconfig.json 位于 ASP.NET Core Web 项目的根目录中。包含、排除、typeRoots 已经存在的属性并且错误不断出现,直到添加了 rootDir。

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅