webstorm и неизвестные методы класса в подсказках

есть файл main.js и inc.js в одном проекте webstorm

Содержимое main.js

class A{
    f1(){}
    f2(){}
}

let a = new A;
a.f1();


var b = require('D:\\Dev\\Project\\js\\storm\\inc.js');
b.f1();

Содержимое inc.js

module.exports = {
    f1: function(a,b) {return a+b;},
    f2: function(a,b) {return a-b;}
};

методы класса A, при обращении к переменной a webstorm видит и показывает первыми, это ожидаемое поведение, а вот при обращении к переменной b, функции из экспортируемого файла покажет только при полном вводе их имени, а если подключаемый файл вообще не в папке с решением, то webstorm функций в нем не показывает совсем, а только левые функции советует!

не показывает функции в файле

Как это поведение исправить и сделать работу удобной?


Ответы (1 шт):

Автор решения: lena

такие пути в require() IDE не поддерживает. В случае, если соответствующий файл лежит в проекте, имя модуля будет ресолвиться просто по имени, и подсказки работать не будут; если файл находится вне папки проекта, модули из него вообще не будут найдены, т.к. файлы вне проекта не индексируются, и никакие функции работы с кодом (кроме базовой синтаксической подсветки) для них не доступны. Поэтому, если хотите, чтобы работа была удобной, положите файл в папку проекта и используйте относительные пути в require().

введите сюда описание изображения

Хотя node.js сам по себе поддерживает загрузку модуля по абсолютнму пути, использование таких путей - это bad practice, т.к. такой код будет работать только на вашей машине

→ Ссылка