Перейдите ES6 через cTags - PullRequest
       65

Перейдите ES6 через cTags

3 голосов
/ 04 октября 2019

My .cTags работает нормально в большинстве случаев. Однако в сценарии, упомянутом ниже, он не работает должным образом.

Структура каталогов

root
 - a
   - foo.js
   - bar.js
   - index.js
 - b
   - current-file.js

current-file.js

import { foo } from './a'

foo()

index.js

export { default as foo } from './foo'

foo.js

const foo = () => 'foo'

export default foo

Когда я пытаюсь перейти к определениюfoo из current-file.js его перемещение в a / index.js вместо a / foo.js

1 Ответ

4 голосов
/ 22 октября 2019

Я думаю, что это не ограничение для cTags, а для самого языка ES6.

При импорте фигурных скобок сначала будет найден файл с именем a, если он не найден, он будет искатькаталог с именем 'a' с его файлом index.js (автоматически разрешается, например: a/index.js). Он не будет искать файл в каталоге.

Фигурные скобки ищут только нестандартные экспорты из файла и не просматривают каталоги.

Пример (ПРИМЕЧАНИЕ: каталог a был переименован в c, так как codesandbox зарезервировал имя a в своем движке)

Вы можете попробовать удалить файл /c.js, чтобы загрузитьВместо этого c/index.js file.

Также я предлагаю вам эту ветку , которая может дать вам больше советов по фигурным скобкам в js

Возможно, вы сможете прочитатьчерез каталог с fs.readDir api и автоматически require / экспортировать файлы в index.js;Но index.js будет загружен.

...