2017-02-13 6 views
6

В ES6 (например, узел), импортировать модуль как этотПерейти к определению импорта ES6, если index.js опущен

import something from 'something';

ли так же, как

import something from 'something/index';

Однако , vscode кажется неспособным выполнить «Перейти к определению» при импорте модулей с использованием первого метода. Если я добавлю index, «Go To Definition» будет работать. Есть ли способ изменить jsconfig.json, чтобы vscode проверял файл index по умолчанию?

+0

Я столкнулся с той же проблемой сегодня , Открыта ошибка с vscode: https://github.com/Microsoft/vscode/issues/24715 –

ответ

10

I asked this question on github и получил этот ответ от Мэтта Биернера (Microsoft).

Есть ли в вашем проекте jsconfig.json? Вы можете убедиться, что он содержит настройки:

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

Добавления вышеуказанной конфигурации к моим jsconfig.json, кажется, исправили проблему, даже если я использую ES6 import и export синтаксиса.

Однако это не должно быть проблемой, так как,

В jsconfig, опция Модуль изменяет только как пути разрешаются

You can read more about the module setting here

+0

К сожалению, этот параметр не работает для меня. Кажется, эта проблема как-то/несколько, и не всегда, связана с настройкой «baseUrl» jssconfig.json. Я видел довольно много исправлений и регрессий, как и летом 2016 года. – Vassilis

+0

@Vassilis - если это помогает, мой «baseUrl» установлен в: «baseUrl»: «.», Который я думаю по умолчанию, но мне нужно было установить некоторые значения для 'paths' –

+1

Это, похоже, исправило это для меня. У меня был файл jsconfig.json, но у меня был модуль: «es6» вместо «commonjs» (не знаю, почему «es6» не работал одинаково). Благодаря! –