WebStorm генерирует неверные пути импорта - PullRequest
0 голосов
/ 07 ноября 2019

Мой проект имеет такую ​​структуру:

root/
---tsconfig.json
---app/
------main.ts
---lib/
------public_api.ts
------files/
---------index.ts
---------file2.ts
---------file3.ts

Файл index.ts в lib/ представляет собой файл в виде бочки, который экспортирует все файлы в ./files:

# index.ts
export * from './file2';
export * from './file3';

public_api.ts файл экспортирует независимо от того, что выставляет ствол

# public_api.ts
export * from './files'

Наконец, tsconfig имеет псевдоним пути для всех файлов в lib/, например:

    "paths": {
      "lib": ["lib/public_api.ts"]
    }

С этой настройкой,Из моего приложения main.ts я могу импортировать свои библиотечные классы, не используя полный путь:

# main.ts
import { File2Class } from 'lib';

Это хорошо работает, и моя IDE (PhpStorm / Webstorm) будет знать, как автоматически генерировать импорт с псевдонимом путикогда я нахожусь в main.ts.

Проблема в том, что иногда, когда я нахожусь в файле lib/files/*.ts и я использую класс из файла-брата, IDE будет использовать тот же псевдоним, поэтому изнутриfile3.ts Это автоматически сгенерирует один из следующих импортов:

# file3.ts
import { File2Class } from 'lib';
or
import { File2Class } from './';

Это вызывает трудную отладку ошибки компиляции. Правильный импорт из одноуровневого файла:

# file3.ts
import { File2Class } from './file2';

Поэтому мой вопрос: можно ли указать Webstorm / PhpStorm, чтобы он никогда не использовал родительский путь и никогда не импортировал из ствола в текущий или родительский файл? каталог

...