如果省略index.js,请转到ES6导入的定义

Wes*_*y T 10 visual-studio-code

在ES6(如节点)中,导入这样的模块

import something from 'something';

是相同的

import something from 'something/index';

但是,如果使用第一种方法导入模块,则vscode似乎无法执行"转到定义".如果我追加index,"转到定义"工作.有没有办法修改默认情况下jsconfig.json让vscode检查index文件?

Bra*_*one 15

我在github上问了这个问题并收到了Matt Bierner(微软)的回复.

你的项目有jsconfig.json吗?你能确定它包含以下设置:

{ "compilerOptions": { "module": "commonjs" } }

将上述配置添加到我的jsconfig.json似乎已解决了问题,即使我正在使用ES6 importexport语法.

但是,这应该不是问题,因为,

在jsconfig中,模块选项仅更改路径的解析方式

您可以在module此处详细了解该设置


jfr*_*rej 5

还有另一种解决方案(来源)。在 jsconfig 中包含以下内容:

"compilerOptions": {
    "module": "es6",
    "moduleResolution": "node"
},
Run Code Online (Sandbox Code Playgroud)

更改"module": "es6""module": "commonjs"对我来说也有效,但我更喜欢保持module设置为es6