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"
}
}
并将import语句更改为:
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配置
确认在我的tsconfig.json
中将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中看到的行为与上述针对vs代码的@intelliot类似。 谢谢你的建议。
对于将目标更新为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秒钟后再次以红色突出显示。 因此,就我而言,重新启动无法解决此问题。
我遇到了同样的问题,但是那是因为我忘记在tsconfig.json中包含新创建的文件夹/ ts文件
我遇到了同样的问题,但是那是因为我忘记在tsconfig.json中包含新创建的文件夹/ ts文件
一样,谢谢兄弟!
在我的情况下:“文件”->“使缓存无效/重新启动...”->“无效并重新启动”,解决了该问题
就我而言,我通过执行以下操作解决了此问题:
"moduleResolution": "node"
这也可以解决问题:
"module": "commonjs"
就我而言,我不确定这是否会发生,但是,我不得不将tsconfig.json
放在与out
和src
文件夹相同的目录中。
尽管我添加了moduleResolution:节点,但错误仍然存在。 VS重新启动后,它被“修复”
最有用的评论
将resolveJsonModule设置为“ true”之后,我在VS Code中遇到了相同的问题(TypeScript 3.2.2,VSCode 1.30.1)。 重新启动VS Code为我解决了这个问题-我不必更改任何其他ts配置