Version TypeScript: 2.9.2, 3.0.0-dev.20180703
Termes de recherche:
résoudreJsonModule, 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"
}
}
Comportement prévisible:
Aucune erreur.
Comportement réel:
Erreur de compilation:
$ 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';
~~~~~~~~~~~~~
Lorsque j'ajoute l'option 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"
}
}
et remplacez l'instruction d'importation par:
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';
Ça marche. Mais avec l'option esModuleInterop
, je dois modifier de nombreuses importations dans mon projet, ce qui n'est pas souhaitable.
Lien Playground:
Problèmes liés:
Aussi avec resolveJsonModule
, mais sans esModuleInterop
, le fichier json apparaît dans le répertoire de sortie.
Après avoir réglé la valeur "true" pour résoudreJsonModule, j'avais le même problème dans VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Le redémarrage de VS Code a résolu le problème pour moi - je n'ai eu à modifier aucune autre configuration ts
Confirmation que le paramètre resolveJsonModule
à true
dans mon tsconfig.json
résolu ce problème.
Le redémarrage manuel de VS Code résout ce problème.
Après avoir réglé la valeur "true" pour résoudreJsonModule, j'avais le même problème dans VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Le redémarrage de VS Code a résolu le problème pour moi - je n'ai eu à modifier aucune autre configuration ts
Merci, cela a fonctionné!
Après avoir réglé la valeur "true" pour résoudreJsonModule, j'avais le même problème dans VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Le redémarrage de VS Code a résolu le problème pour moi - je n'ai eu à modifier aucune autre configuration ts
A travaillé pour moi aussi, merci!
Après avoir réglé la valeur "true" pour résoudreJsonModule, j'avais le même problème dans VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Le redémarrage de VS Code a résolu le problème pour moi - je n'ai eu à modifier aucune autre configuration ts
Cela a vraiment fonctionné. Merci 😃
Après avoir réglé la valeur "true" pour résoudreJsonModule, j'avais le même problème dans VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Le redémarrage de VS Code a résolu le problème pour moi - je n'ai eu à modifier aucune autre configuration ts
Merci, cela a fonctionné comme un charme!
Je vois un comportement similaire dans intellij à ce que @intelliot a décrit ci-dessus pour vs code. Merci pour la suggestion.
Pour ceux qui ont mis à jour leur cible à esnext
vous devez ajouter ce qui suit à votre tsconfig :
...
"cible": "esnext",
"moduleResolution": "node",
...
Au départ, après un redémarrage, le fichier est vert, puis 3 secondes plus tard surligné à nouveau en rouge. Donc, redémarrer dans mon cas ne résout pas ce problème.
@ chrisj-skinner pareil avec moi. Je ne sais pas pourquoi cela se produit.
Pourquoi ce problème est-il proche puisque ce problème existe toujours?
j'ai
"esModuleInterop": true,
"resolveJsonModule": true,
"moduleResolution": "node",
et
const pkgJSON = require('../../package.json');
- Consider using '--resolveJsonModule' to import module with '.json' extensionts(2732)
J'utilise déjà resolutionJsonModule.
Si vous utilisez WebStorm, vous devez également redémarrer.
J'ai le même problème ici,
Au départ, après un redémarrage, le fichier est vert, puis 3 secondes plus tard surligné à nouveau en rouge. Donc, redémarrer dans mon cas ne résout pas ce problème.
Au départ, après un redémarrage, le fichier est vert, puis 3 secondes plus tard surligné à nouveau en rouge. Donc, redémarrer dans mon cas ne résout pas ce problème.
J'ai eu le même problème, mais parce que j'ai oublié d'inclure le nouveau fichier de dossier / ts créé dans le tsconfig.json
J'ai eu le même problème, mais parce que j'ai oublié d'inclure le nouveau fichier de dossier / ts créé dans le tsconfig.json
Pareil, merci mon frère!
Dans mon cas: "Fichier" -> "Invalidate Caches / Restart ..." -> "Invalidate and Restart", a résolu le problème
Dans mon cas, j'ai corrigé cela en faisant:
"moduleResolution": "node"
Cela peut également résoudre le problème:
"module": "commonjs"
Dans mon cas, je ne sais pas si cela est supposé se produire ou non, mais j'ai dû mettre mes tsconfig.json
dans le même répertoire que mes dossiers out
et src
.
Bien que j'aie ajouté moduleResolution: node, l'erreur était toujours là. Après un redémarrage VS, il a été `` corrigé ''
Commentaire le plus utile
Après avoir réglé la valeur "true" pour résoudreJsonModule, j'avais le même problème dans VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Le redémarrage de VS Code a résolu le problème pour moi - je n'ai eu à modifier aucune autre configuration ts