Предупреждение: не удается найти родителя tsconfig.json

Я хотел бы исправить предупреждение:

Предупреждение: не удается найти родителя tsconfig.json

на вкладке TypeScript Errors в IntelliJ IDEA 2016.3. Мой TypeScript код живет в каталоге src, а мой TypeScript вывод будет lib, как и ожидалось, без добавления папки src в lib.

Я использую папку lib в других проектах и, похоже, работает так, как ожидалось. Таким образом, это не представляет большой проблемы, но у меня иногда возникает проблема с TSLint, где иногда кажется, что он не забирает файл .tsx, это JSX и неправильно помечен и, кажется, иногда относится к нему как к нормальному .ts файл. В конце концов, похоже, это выясняется. Мне интересно, связано ли это с тем, что мои настройки TSLint настроены на использование tsconfig.json.

Я также ранее имел .js переданные файлы, появляющиеся рядом с файлами .ts в папке src, но не с тех пор, как я недавно изменил свой 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
  }
}

Ответ 1

проблема относится к используемой версии TypeScript (2.1.x); он зафиксирован в 2016.3. 2 EAP

Примечание. Этот ответ относится к проблеме, специфичной для IDE (WebStorm, PHPStorm, IDEA) версии 2016.3: она не работает с TypeScript 2.1.x, показывая ложные предупреждения. Если вы видите подобное сообщение (Cannot find parent tsconfig.json) в других версиях IDE, это, скорее всего, проблема с вашей конфигурацией: такие сообщения отображаются, если текущий отредактированный файл .ts не включен ни в один tsconfig.json.

Ответ 2

Попробуйте настроить include раздел в файле tsconfig.json, как показано ниже.
(Обратите внимание, что моя корневая папка проекта frontend, а раздел include frontend/**/*).

Конечно, вам не нужно переименовывать корневую папку проекта в frontend.
Именование должно совпадать.

Он должен вступить в силу сразу после сохранения tsconfig.json и открыть файл .ts или .tsx. Если он не пытается перезапустить WebStorm/IDEA.

И не забудьте очистить консоль error перед тестированием этого решения. Он может кэшировать предыдущие сообщения.

P/S: Я использую WebStorm 2016.3.1.

введите описание изображения здесь


Если вы использовали webpack вместе с ts-loader, вышеупомянутое решение приведет к сбою ваших сборок. Если бы это было так, рассмотрите этот подход.

введите описание изображения здесь

Ответ 3

Попробуйте установить "номер версии" в файл 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
    }
}

Ответ 4

Ни один из вышеперечисленных решений не работал у меня, но я наткнулся на изменение tsconfig. Кажется, IDE использует разные правила, которые tsc.

Это НЕ работало:

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

Это работало:

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