Версия TypeScript: 2.9.2, 3.0.0-dev.20180703
Условия поиска:
resolveJsonModule, esModuleInterop
Код
import * as test from './test.json';
tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"target": "es2017",
"lib": ["es2017"],
"strict": true,
"sourceMap": true,
"noEmitOnError": true,
"baseUrl": ".",
"resolveJsonModule": true,
"outDir": "out"
}
}
Ожидаемое поведение:
Ошибок нет.
Фактическое поведение:
Ошибка компиляции:
$ tsc
test.ts:1:23 - error TS2497: Module '"/home/kostya/tmp/resolve-json-test/test"' resolves to a non-module entity and cannot be imported using this construct.
1 import * as test from './test.json';
~~~~~~~~~~~~~
Когда я добавляю параметр esModuleInterop
к tsconfig.json
:
diff --git a/tsconfig.json b/tsconfig.json
index 7f1afb8..e949135 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -9,6 +9,7 @@
"noEmitOnError": true,
"baseUrl": ".",
"resolveJsonModule": true,
+ "esModuleInterop": true,
"outDir": "out"
}
}
и измените оператор импорта на:
diff --git a/test.ts b/test.ts
index 07bb9b7..dddcffb 100644
--- a/test.ts
+++ b/test.ts
@@ -1 +1 @@
-import * as test from './test.json';
+import test from './test.json';
оно работает. Но с опцией esModuleInterop
мне нужно изменить многие импорты в моем проекте, что нежелательно.
Ссылка на игровую площадку:
Связанные вопросы:
Также с resolveJsonModule
, но без esModuleInterop
, файл json появляется в каталоге вывода.
После установки параметра resolveJsonModule в значение «true» у меня возникла такая же проблема в VS Code (TypeScript 3.2.2, VSCode 1.30.1). Перезапуск VS Code решил проблему для меня - мне не пришлось изменять какую-либо другую конфигурацию ts
Подтверждено, что установка resolveJsonModule
на true
в моем tsconfig.json
решила эту проблему.
Эту проблему решает ручной перезапуск VS Code.
После установки параметра resolveJsonModule в значение «true» у меня возникла такая же проблема в VS Code (TypeScript 3.2.2, VSCode 1.30.1). Перезапуск VS Code решил проблему для меня - мне не пришлось изменять какую-либо другую конфигурацию ts
Спасибо, сработало!
После установки параметра resolveJsonModule в значение «true» у меня возникла такая же проблема в VS Code (TypeScript 3.2.2, VSCode 1.30.1). Перезапуск VS Code решил проблему для меня - мне не пришлось изменять какую-либо другую конфигурацию ts
У меня тоже сработало, спасибо!
После установки параметра resolveJsonModule в значение «true» у меня возникла такая же проблема в VS Code (TypeScript 3.2.2, VSCode 1.30.1). Перезапуск VS Code решил проблему для меня - мне не пришлось изменять какую-либо другую конфигурацию ts
Это действительно сработало. Спасибо 😃
После установки параметра resolveJsonModule в значение «true» у меня возникла такая же проблема в VS Code (TypeScript 3.2.2, VSCode 1.30.1). Перезапуск VS Code решил проблему для меня - мне не пришлось изменять какую-либо другую конфигурацию ts
Спасибо, это сработало как шарм!
Я вижу поведение в intellij, подобное тому, что описал выше @intelliot для кода vs. Спасибо за предложение.
Для тех, кто обновил свою цель до esnext
вам необходимо добавить следующее в свой tsconfig :
...
"target": "esnext",
"moduleResolution": "узел",
...
Первоначально после перезапуска файл становится зеленым, а через 3 секунды снова выделяется красным. Поэтому перезапуск в моем случае не решает эту проблему.
@ chrisj-skinner то же самое со мной. Не уверен, почему это происходит.
Почему эта проблема закрыта, если эта проблема все еще существует?
я имею
"esModuleInterop": true,
"resolveJsonModule": true,
"moduleResolution": "node",
и
const pkgJSON = require('../../package.json');
- Consider using '--resolveJsonModule' to import module with '.json' extensionts(2732)
Я уже использую resolveJsonModule.
Если вы используете WebStorm, вам также необходимо перезапустить.
У меня такая же проблема,
Первоначально после перезапуска файл становится зеленым, а через 3 секунды снова выделяется красным. Поэтому перезапуск в моем случае не решает эту проблему.
Первоначально после перезапуска файл становится зеленым, а через 3 секунды снова выделяется красным. Поэтому перезапуск в моем случае не решает эту проблему.
У меня была такая же проблема, но это потому, что я забыл включить новую созданную папку / ts файл в tsconfig.json
У меня была такая же проблема, но это потому, что я забыл включить новую созданную папку / ts файл в tsconfig.json
То же самое, спасибо братан!
В моем случае: «File» -> «Invalidate Caches / Restart ...» -> «Invalidate and Restart», проблема решена.
В моем случае я исправил это, выполнив:
"moduleResolution": "node"
Это также может решить проблему:
"module": "commonjs"
В моем случае я не уверен, должно ли это случиться, но мне пришлось поместить свой tsconfig.json
в тот же каталог, что и мои папки out
и src
.
Хотя я добавил модуль moduleResolution: node, ошибка все еще существовала. После перезапуска VS это было исправлено
Самый полезный комментарий
После установки параметра resolveJsonModule в значение «true» у меня возникла такая же проблема в VS Code (TypeScript 3.2.2, VSCode 1.30.1). Перезапуск VS Code решил проблему для меня - мне не пришлось изменять какую-либо другую конфигурацию ts