【问题标题】:Warning: Cannot find parent tsconfig.json警告:找不到父 tsconfig.json
【发布时间】:2023-03-28 21:55:02
【问题描述】:

我想修正警告:

警告:找不到父 tsconfig.json

IntelliJ IDEA 2016.3 中的 TypeScript Errors 选项卡中。我的 TypeScript 代码位于 src 目录中,并且我的 TypeScript 输出将按预期转到 lib,而不会将 src 文件夹添加到 lib

我在其他项目中使用了lib 文件夹,它似乎按预期工作。所以这似乎不是一个大问题,但我偶尔会遇到 TSLint 的问题,它有时似乎无法获取 .tsx 文件是 JSX 并且 lints 不正确,并且似乎偶尔将其视为正常的 @987654329 @ 文件。最终它似乎想通了。我想知道这是否与我的 TSLint 设置配置为使用 tsconfig.json 有关。

我之前也有.js 转译文件出现在src 文件夹中的.ts 文件旁边,但自从我最近修改了我的tsconfig.json 之后就没有了。

文件如下:

tsconfig.json
src/index.ts
lib/index.js
lib/index.d.ts

我已升级到 TypeScript 2.1.4,但在 2.0.10 中看到了它。

我的tsconfig.json 文件:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "jsx": "react",
    "allowJs": false,
    "isolatedModules": false,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "declaration": true,
    "noImplicitAny": false,
    "noImplicitUseStrict": true,
    "noEmitHelpers": false,
    "removeComments": true,
    "noLib": false,
    "sourceMap": true,
    "inlineSources": true,
    "preserveConstEnums": true,
    "allowSyntheticDefaultImports": true,
    "suppressImplicitAnyIndexErrors": true,
    "rootDir": "./src",
    "outDir": "./lib"
  },
  "include": [
    "./src/**/*"
  ],
  "compileOnSave": true,
  "atom": {
    "rewriteTsconfig": false
  }
}

【问题讨论】:

    标签: typescript intellij-idea webstorm tsconfig


    【解决方案1】:

    尝试在文件 tsconfig.json 中设置 include 部分,如下图所示。
    (请注意,我的项目的根文件夹是 frontend 和我的 include 部分是 frontend/**/*)

    当然,您不需要将项目的根文件夹重命名为 frontend
    只有名称应该匹配。

    保存tsconfig.json 并打开.ts.tsx 文件后应立即生效。如果没有尝试重启WebStorm/IDEA

    在测试此解决方案之前,不要忘记清除 error 控制台。它可能会缓存以前的消息。

    P/S:我正在使用WebStorm 2016.3.1


    如果您同时使用webpackts-loader,上述解决方案将导致您的构建失败。如果是这种情况,请考虑使用这种方法。

    【讨论】:

    • 我不确定这与我在include 中使用src 指定的内容有何不同
    • 哇,所以更改包含解决了它。第二部分不是必需的(在 2016.3.3 中)。还注意到如果我包含src/**/*.tstest/**/*.ts,它会起作用。我怀疑这是dist 文件夹中的文件夹结构。如果您只包含 src/**/*.ts dist/ 将仅包含 src 文件夹的 js 输出。但是,如果包含整个项目文件夹,dist 将有一个 src 和一个 test 子文件夹。
    • 所以你说如果我使用 ts-loader,我应该更改 WebStorm TypeScript 编译器选项..?为此,我需要启用 WebStorm 编译器,而我不想使用 WebStorm 进行编译。我想用 ts-loader 编译....
    • Webstorm 不会将ts 编译为js,除非您通过按一些按钮或右键单击并选择明确告诉它这样做。我不知道是否有一个选项可以在保存时自动进行编译,但如果你遇到它,你可以谷歌将其关闭。我已经检查了该复选框并且从未经历过“保存时编译”。但要 100% 确定您应该使用 svn、git 或 mercurial 来支持您。
    • 很高兴看到这在 21 月 11 日仍然相关。我担心帖子的年龄。这也解决了我的问题。在 ng init 进程中,现在会在 tsconfig.json 文件中设置吗?
    【解决方案2】:

    问题特定于所使用的 TypeScript 版本 (2.1.x);已修复在2016.3. 2 EAP

    注意:此答案是指特定于 IDE(WebStorm、PHPStorm、IDEA)版本 2016.3 的问题:它不适用于 TypeScript 2.1.x,显示错误警告。 如果您在其他 IDE 版本中看到类似的消息 (Cannot find parent tsconfig.json),则可能是您的配置有问题:如果当前编辑的 .ts 文件未包含在任何 tsconfig.json 中,则会显示此类消息。

    【讨论】:

    • 2016.3.3依然存在
    • 必须是不同的问题。确保您的文件包含在您的 tsconfig.json 中
    • WebStorm 2017.1.4,仍然存在
    • 请查看更新后的答案。你的问题明显不同,很可能是你的配置造成的
    • 刚从 PhpStorm 2017.2 更新到 2017.3 后出现这个问题,正在调查中...
    【解决方案3】:

    上述解决方案都不适合我,但我确实偶然发现了一个 tsconfig 更改。看来 IDE 使用的规则与 tsc 不同。

    这不起作用

    "include": ["./typings", "./src", "./test"],
    

    这确实有效

    "include": ["./typings/**/*", "./src/**/*", "./test/**/*"],
    

    【讨论】:

      【解决方案4】:

      尝试将“版本号”设置为您的 tsconfig.json 文件。

      {
          "version": "2.1.4",
          "compilerOptions": {
              "target": "es5",
              "module": "commonjs",
              "moduleResolution": "node",
              "jsx": "react",
              "allowJs": false,
              "isolatedModules": false,
              "experimentalDecorators": true,
              "emitDecoratorMetadata": true,
              "declaration": true,
              "noImplicitAny": false,
              "noImplicitUseStrict": true,
              "noEmitHelpers": false,
              "removeComments": true,
              "noLib": false,
              "sourceMap": true,
              "inlineSources": true,
              "preserveConstEnums": true,
              "allowSyntheticDefaultImports": true,
              "suppressImplicitAnyIndexErrors": true,
              "rootDir": "./src",
              "outDir": "./lib"
          },
          "include": [
              "./src/**/*"
          ],
          "compileOnSave": true,
          "atom": {
              "rewriteTsconfig": false
          }
      }
      

      【讨论】:

      • 刚才试过了,可惜好像不行。
      • 我今天遇到了一个 Angular2 项目,但在升级到 TypeScript 2.1.4 后,我删除了项目安装/设置过程中生成的所有文件夹和文件。然后我再次安装它,我的设置为我安装了以下文件夹:typings、node_modules、ce_sources 和 tmp。也许你需要从你的设置中删除所有生成的文件夹和文件,导致一些旧的或错误的文件仍然存在。希望对你有帮助
      猜你喜欢
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 2017-11-23
      • 2020-10-24
      • 2013-06-08
      • 2015-06-11
      • 2015-07-23
      • 2010-11-30
      相关资源
      最近更新 更多