Предупреждение: не удается найти родителя 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/**/*"],