警告:找不到父 tsconfig.json

Warning: Cannot find parent tsconfig.json

我想修复警告:

Warning: Cannot find parent tsconfig.json

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

我在其他项目中使用了 lib 文件夹,它似乎按预期工作。所以这似乎不是一个大问题,但我偶尔会遇到 TSLint 的问题,它有时似乎没有选择一个 .tsx 文件是 JSX 并且 lints 不正确并且似乎偶尔将其视为正常.ts 文件。最终它似乎弄明白了。我想知道这是否与我的 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
  }
}

尝试将 "version number" 设置为您的 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
    }
}

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

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

保存 tsconfig.json 并打开 .ts.tsx 文件后应该会立即生效。如果它不尝试重新启动 WebStorm/IDEA.

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

P/S: 我正在使用 WebStorm 2016.3.1.


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

问题特定于正在使用的 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

None 以上解决方案对我有用,但我确实偶然发现了一个 tsconfig 更改。 IDE 似乎使用了与 tsc.

不同的规则

这没有用:

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

这确实有效:

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