【问题标题】:tsconfig.json: Build:No inputs were found in config filetsconfig.json:构建:在配置文件中找不到输入
【发布时间】:2017-05-03 20:29:54
【问题描述】:

我有一个 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" 属性,所以我不得不同时添加。由于某种原因,似乎两者都是必需的

标签: json typescript visual-studio-2015 asp.net-core


【解决方案1】:

我用过 How to disable TypeScript compilation in .Net Core projects?

因为我使用模板,而这些包只需要我的模板。 但是我可以在它们的 node_module 文件中看到每个包的导出。 如果你有同样的情况,你可以使用上面的链接

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    如果您使用的是 VSCode,并且您打开了多个文件夹,那么您需要打开您正在处理的一个文件夹才能让它消失。

    文件夹打开错误 文件夹右打开

    【讨论】:

      【解决方案4】:

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

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

      我的文件夹结构

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

      我的 tsconfig.json

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

      【讨论】:

        【解决方案5】:

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

        tsconfig.json

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

        【讨论】:

          【解决方案6】:

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

          tsconfig.json

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

          【讨论】:

          • 这很好用,对于按照上述操作后仍然出现错误的人,只需重新启动您的 IDE 即可修复错误。
          【解决方案7】:

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

          【讨论】:

            【解决方案8】:

            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"

            【讨论】:

              【解决方案9】:

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

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

              【讨论】:

                【解决方案10】:

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

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

                出现错误是因为文件夹wwwroot出现在include和exclude中,你应该退出其中一个。

                【讨论】:

                  【解决方案11】:

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

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

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

                  发现上面是comment of How to Write Node.js Applications in Typescript

                  【讨论】:

                    【解决方案12】:

                    我收到了这个错误:

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

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

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

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

                    【讨论】:

                      【解决方案13】:

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

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

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

                      1. 导航到任何.ts.tsx 文件

                      2. 打开命令面板(CMD + SHIFT + P 在mac上)

                      3. 运行TypeScript: Restart TS server 命令:

                      【讨论】:

                      • 你如何获得 TypeScript 命令?我只有例如文件GitGitLens
                      • @Leo 确保您在查找命令时正在查看 .js/.jsx/.ts/.tsx 文件。例如,当您查看.html 文件时,该命令不可用
                      • 重启ts服务器帮我搞定了,不知道是什么东西,谢谢
                      • 这对我有用,其他人没有帮助,因为我确实有 .ts 文件
                      【解决方案14】:

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

                      【讨论】:

                        【解决方案15】:

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

                        MSBuild & Typescript

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

                        【讨论】:

                          【解决方案16】:
                          "outDir"
                          

                          应该不同于

                          "rootDir"
                          

                          例子

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

                          【讨论】:

                            【解决方案17】:

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

                            【讨论】:

                              【解决方案18】:

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

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

                              【讨论】:

                                【解决方案19】:

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

                                【讨论】:

                                • 这对我有用,Eclipse + CodeMix 插件。谢谢。
                                • 适用于 VSC。您可以在 VSC 中重新启动 TS 服务器。谢谢。
                                • 我一直在拉头发,直到我尝试了这个 :)
                                【解决方案20】:

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

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

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

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

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

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

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

                                【讨论】:

                                  【解决方案21】:

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

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

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

                                  【讨论】:

                                    【解决方案22】:

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

                                    【讨论】:

                                      【解决方案23】:

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

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

                                      <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
                                      

                                      【讨论】:

                                        【解决方案24】:

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

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

                                        把它改成这个解决了我的问题:

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

                                        【讨论】:

                                          【解决方案25】:

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

                                          【讨论】:

                                          • 这是什么意思?
                                          • @Christian Matthew 这意味着,您需要在应用程序所在的文件夹中添加至少一个 typescript 文件以满足 typescript 编译器的要求。
                                          • 脚本文件夹是什么意思。能详细点吗??
                                          • 讽刺地......我很久以前就使用过这个答案(添加了 tsconfig 并解决了这个问题)。当我将 Vue 添加到项目中时,问题再次弹出......所以我不得不删除我过去添加的 tsconfig,它起作用了:P
                                          • 谢谢。为我工作。但是谁能解释一下背后到底发生了什么?
                                          【解决方案26】:

                                          在 'include' 标记中添加 .ts 文件位置,然后编译工作正常。前任。

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

                                          【讨论】:

                                            【解决方案27】:

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

                                            【讨论】:

                                              【解决方案28】:

                                              我在根目录(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": [ "" ] 也可以(覆盖默认的./)
                                              【解决方案29】:

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

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

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

                                              【讨论】:

                                                【解决方案30】:

                                                我在这个项目中根本没有使用 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 出于某种原因开始需要这个。这对他们来说是一个非常糟糕的架构。
                                                猜你喜欢
                                                • 2018-04-22
                                                • 2022-10-02
                                                • 1970-01-01
                                                • 1970-01-01
                                                • 2021-02-06
                                                • 2019-04-12
                                                • 2017-09-05
                                                • 2019-02-25
                                                • 2022-09-29
                                                相关资源
                                                最近更新 更多