Versi TypeScript: 2.9.2, 3.0.0-dev.20180703
Istilah Pencarian:
resolJsonModule, esModuleInterop
Kode
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"
}
}
Perilaku yang diharapkan:
Tidak ada kesalahan.
Perilaku sebenarnya:
Kesalahan kompilasi:
$ 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';
~~~~~~~~~~~~~
Ketika saya menambahkan opsi esModuleInterop
ke 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"
}
}
dan ubah pernyataan impor menjadi:
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';
berhasil. Tetapi dengan opsi esModuleInterop
saya perlu mengubah banyak impor dalam proyek saya, yang tidak diinginkan.
Tautan Taman Bermain:
Masalah Terkait:
Juga dengan resolveJsonModule
, tetapi tanpa esModuleInterop
, file json muncul di direktori keluaran.
Setelah menetapkan resolJsonModule ke "true", saya mengalami masalah yang sama di VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Restart VS Code menyelesaikan masalah untuk saya - Saya tidak perlu mengubah konfigurasi ts lainnya
Dikonfirmasi bahwa pengaturan resolveJsonModule
menjadi true
dalam tsconfig.json
menyelesaikan masalah ini.
Memulai ulang VS Code secara manual menyelesaikan masalah ini.
Setelah menetapkan resolJsonModule ke "true", saya mengalami masalah yang sama di VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Restart VS Code menyelesaikan masalah untuk saya - Saya tidak perlu mengubah konfigurasi ts lainnya
Terima kasih, berhasil!
Setelah menetapkan resolJsonModule ke "true", saya mengalami masalah yang sama di VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Restart VS Code menyelesaikan masalah untuk saya - Saya tidak perlu mengubah konfigurasi ts lainnya
Bekerja untuk saya juga, terima kasih!
Setelah menetapkan resolJsonModule ke "true", saya mengalami masalah yang sama di VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Restart VS Code menyelesaikan masalah untuk saya - Saya tidak perlu mengubah konfigurasi ts lainnya
Ini benar-benar berhasil. Terima kasih 😃
Setelah menetapkan resolJsonModule ke "true", saya mengalami masalah yang sama di VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Restart VS Code menyelesaikan masalah untuk saya - Saya tidak perlu mengubah konfigurasi ts lainnya
Terima kasih, Ini bekerja seperti pesona!
Saya melihat perilaku serupa di intellij dengan apa yang dijelaskan @intelliot di atas untuk kode vs. Terima kasih untuk sarannya.
Bagi mereka yang telah memperbarui target mereka menjadi esnext
Anda perlu menambahkan yang berikut ini ke tsconfig Anda:
...
"target": "esnext",
"moduleResolution": "node",
...
Awalnya setelah restart file berwarna hijau, kemudian 3 detik kemudian disorot merah lagi. Jadi memulai ulang dalam kasus saya tidak memperbaiki masalah ini.
@ chrisj-skinner sama dengan saya. Tidak yakin mengapa ini terjadi.
Mengapa masalah ini ditutup karena masalah ini masih ada?
saya sudah
"esModuleInterop": true,
"resolveJsonModule": true,
"moduleResolution": "node",
dan
const pkgJSON = require('../../package.json');
- Consider using '--resolveJsonModule' to import module with '.json' extensionts(2732)
Saya sudah menggunakan resolJsonModule.
Jika Anda menggunakan WebStorm, Anda juga harus memulai ulang.
Saya memiliki masalah yang sama di sini,
Awalnya setelah restart file berwarna hijau, kemudian 3 detik kemudian disorot merah lagi. Jadi memulai ulang dalam kasus saya tidak memperbaiki masalah ini.
Awalnya setelah restart file berwarna hijau, kemudian 3 detik kemudian disorot merah lagi. Jadi memulai ulang dalam kasus saya tidak memperbaiki masalah ini.
Saya memiliki masalah yang sama, tetapi itu karena saya lupa menyertakan file folder / ts yang baru dibuat di tsconfig.json
Saya memiliki masalah yang sama, tetapi itu karena saya lupa menyertakan file folder / ts yang baru dibuat di tsconfig.json
Sama, terima kasih bro!
Dalam kasus saya: "File" -> "Invalidate Caches / Restart ..." -> "Invalidate and Restart", selesaikan masalah
Dalam kasus saya, saya memperbaikinya dengan melakukan:
"moduleResolution": "node"
Ini juga dapat memperbaiki masalah:
"module": "commonjs"
Untuk kasus saya, saya tidak yakin apakah ini seharusnya terjadi atau tidak tetapi, saya harus meletakkan tsconfig.json
di direktori yang sama dengan folder out
dan src
.
Meskipun saya menambahkan moduleResolution: node, kesalahannya masih ada. Setelah VS restart, itu 'diperbaiki'
Komentar yang paling membantu
Setelah menetapkan resolJsonModule ke "true", saya mengalami masalah yang sama di VS Code, (TypeScript 3.2.2, VSCode 1.30.1). Restart VS Code menyelesaikan masalah untuk saya - Saya tidak perlu mengubah konfigurasi ts lainnya