Как включить в область видимости code completion все файлы (text/javascript) на которые ссылается HTML?
Я пишу приложение на javascript, в локальной сети запущен nodejs с express. Я использую IDE WebStorm в котором есть инструмент анализа и автодополнения кода, как intellij sence в vsc. У меня есть библиотека vivagraph.js которую я хочу использовать. Я так же хочу чтобы code comletion видел этот модуль и показывал всю соответствующую информацию о функциях. У меня есть каталог public в котором определён html ссылающийся на 2 файла: сам модуль vivagraph.js и файл с моим кодом viva.js.
var graph = Viva.Graph.graph();
graph.addLink(1, 2);
var renderer = Viva.Graph.View.renderer(graph, {
container: document.getElementById('graph-container')
});
renderer.run();
Код работал корректно в браузере в том случае если тип обоих файлов был text/javascript, при этом webstorm показывал Viva not defined, code completion не работал. Если выставить type module и импортировать модуль, то браузер скажет что в vivagraph нет экспорта по умолчанию.
Так было пару часов назад, сейчас в браузере код не работает даже в первом случае:
Uncaught Error: Cannot find module './.'
at s (vivagraph.js:1:470)
at vivagraph.js:1:627
at 33.../ (vivagraph.js:3493:11)
at s (vivagraph.js:1:576)
at vivagraph.js:1:627
at 32../lib/compile (vivagraph.js:3381:15)
at s (vivagraph.js:1:576)
at vivagraph.js:1:627
at 53.../Input/domInputManager.js (vivagraph.js:5105:11)
at s (vivagraph.js:1:576)
Что изменилось за эти пару часов понятия не имею.
Автодополнение кода работает только в том случае если вначале viva.js импортировать
import Viva from "vivagraphjs";, IDE берёт его из node_modules. Для меня это кажется странным потому что насколько я знаю это способ импорта для ES6, а nodejs по умолчанию использует commonjs, для которого нужно использовать require(). Причём если использовать require() то автодополнение кода работать не будет.
Мне нужно чтобы в моём IDE работало автодополнение кода и чтобы этот работал в браузере. Возможно корректно будет сказать что мне нужно понять как правильно импортировать и использовать модули.
Файл package.json:
{
"name": "modulesapp",
"version": "1.0.0",
"main": "public/index.html",
"dependencies": {
"express": "^4.18.1",
"vivagraphjs": "0.12.0"
}
}