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 шт):
такие пути в require() IDE не поддерживает. В случае, если соответствующий файл лежит в проекте, имя модуля будет ресолвиться просто по имени, и подсказки работать не будут; если файл находится вне папки проекта, модули из него вообще не будут найдены, т.к. файлы вне проекта не индексируются, и никакие функции работы с кодом (кроме базовой синтаксической подсветки) для них не доступны. Поэтому, если хотите, чтобы работа была удобной, положите файл в папку проекта и используйте относительные пути в require().
Хотя node.js сам по себе поддерживает загрузку модуля по абсолютнму пути, использование таких путей - это bad practice, т.к. такой код будет работать только на вашей машине

