TypeScript-Version: 2.9.2, 3.0.0-dev.20180703
Suchbegriffe:
resolveJsonModule, esModuleInterop
Code
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"
}
}
Erwartetes Verhalten:
Keine Fehler.
Tatsächliches Verhalten:
Kompilierungsfehler:
$ 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';
~~~~~~~~~~~~~
Wenn ich esModuleInterop
Option zu tsconfig.json
hinzufüge:
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"
}
}
und ändern Sie die Importanweisung in:
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';
Es klappt. Aber mit der Option esModuleInterop
ich viele Importe in meinem Projekt ändern, was unerwünscht ist.
Spielplatz Link:
Verwandte Themen:
Auch mit resolveJsonModule
, jedoch ohne esModuleInterop
, wird die JSON-Datei im Ausgabeverzeichnis angezeigt.
Nachdem ich resolveJsonModule auf "true" gesetzt hatte, hatte ich das gleiche Problem in VS Code (TypeScript 3.2.2, VSCode 1.30.1). Durch einen Neustart von VS Code wurde das Problem für mich behoben. Ich musste keine andere ts-Konfiguration ändern
Bestätigt, dass das Setzen von resolveJsonModule
auf true
in meinem tsconfig.json
dieses Problem behoben hat.
Durch manuelles Neustarten von VS Code wird dieses Problem behoben.
Nachdem ich resolveJsonModule auf "true" gesetzt hatte, hatte ich das gleiche Problem in VS Code (TypeScript 3.2.2, VSCode 1.30.1). Durch einen Neustart von VS Code wurde das Problem für mich behoben. Ich musste keine andere ts-Konfiguration ändern
Danke, es hat funktioniert!
Nachdem ich resolveJsonModule auf "true" gesetzt hatte, hatte ich das gleiche Problem in VS Code (TypeScript 3.2.2, VSCode 1.30.1). Durch einen Neustart von VS Code wurde das Problem für mich behoben. Ich musste keine andere ts-Konfiguration ändern
Hat auch für mich gearbeitet, danke!
Nachdem ich resolveJsonModule auf "true" gesetzt hatte, hatte ich das gleiche Problem in VS Code (TypeScript 3.2.2, VSCode 1.30.1). Durch einen Neustart von VS Code wurde das Problem für mich behoben. Ich musste keine andere ts-Konfiguration ändern
Das hat tatsächlich funktioniert. Danke 😃
Nachdem ich resolveJsonModule auf "true" gesetzt hatte, hatte ich das gleiche Problem in VS Code (TypeScript 3.2.2, VSCode 1.30.1). Durch einen Neustart von VS Code wurde das Problem für mich behoben. Ich musste keine andere ts-Konfiguration ändern
Danke, es hat wie ein Zauber funktioniert!
Ich sehe ein ähnliches Verhalten in Intellij wie das, was @intelliot oben für vs Code beschrieben hat. Danke für den Vorschlag.
Für diejenigen, die ihr Ziel auf esnext
aktualisiert haben, müssen Sie Ihrer tsconfig Folgendes
...
"Ziel": "esnext",
"moduleResolution": "node",
...
Nach einem Neustart ist die Datei zunächst grün, dann 3 Sekunden später wieder rot hervorgehoben. Ein Neustart in meinem Fall behebt dieses Problem also nicht.
@ Chrisj-Skinner gleich bei mir. Ich bin mir nicht sicher, warum das passiert.
Warum ist dieses Problem nahe, da dieses Problem immer noch besteht?
ich habe
"esModuleInterop": true,
"resolveJsonModule": true,
"moduleResolution": "node",
und
const pkgJSON = require('../../package.json');
- Consider using '--resolveJsonModule' to import module with '.json' extensionts(2732)
Ich benutze ResolutionJsonModule bereits.
Wenn Sie WebStorm verwenden, müssen Sie auch neu starten.
Ich habe hier das gleiche Problem,
Nach einem Neustart ist die Datei zunächst grün, dann 3 Sekunden später wieder rot hervorgehoben. Ein Neustart in meinem Fall behebt dieses Problem also nicht.
Nach einem Neustart ist die Datei zunächst grün, dann 3 Sekunden später wieder rot hervorgehoben. Ein Neustart in meinem Fall behebt dieses Problem also nicht.
Ich hatte das gleiche Problem, aber das, weil ich vergessen habe, den neu erstellten Ordner / ts in die Datei tsconfig.json aufzunehmen
Ich hatte das gleiche Problem, aber das, weil ich vergessen habe, den neu erstellten Ordner / ts in die Datei tsconfig.json aufzunehmen
Gleich, danke Bruder!
In meinem Fall: "Datei" -> "Caches ungültig machen / neu starten ..." -> "Ungültig machen und neu starten", das Problem wurde behoben
In meinem Fall habe ich Folgendes behoben:
"moduleResolution": "node"
Dies kann auch das Problem beheben:
"module": "commonjs"
Für meinen Fall bin ich mir nicht sicher, ob dies passieren soll oder nicht, aber ich musste meine tsconfig.json
in dasselbe Verzeichnis wie meine Ordner out
und src
legen.
Obwohl ich moduleResolution: node hinzugefügt habe, war der Fehler immer noch vorhanden. Nach einem VS-Neustart wurde es 'behoben'
Hilfreichster Kommentar
Nachdem ich resolveJsonModule auf "true" gesetzt hatte, hatte ich das gleiche Problem in VS Code (TypeScript 3.2.2, VSCode 1.30.1). Durch einen Neustart von VS Code wurde das Problem für mich behoben. Ich musste keine andere ts-Konfiguration ändern