Включение автозавершения в WebStorm для модулей node.js, установленных через npm

Я использую WebStorm 5.0.4 для разработки приложения node.js.

Я установил несколько модулей node глобально с помощью

npm install -g module-name
и связал их с проектом с помощью
npm link module-name

Автозаполнение не работает ни для одного из установленных модулей npm. Он работает только для основных модулей (например, http или path).

Кроме того, WebStorm дает предупреждение "Unresolved function or method xyz" для любой из функций, которые я вызываю из установленных модулей npm.

Как сделать автозаполнение WebStorm и вообще узнать о установленных модулях, что я require?

Ответ 1

Я не уверен, что это объясняет вашу конкретную ситуацию, однако я столкнулся с аналогичной проблемой в WebStorm 5.0.4, тогда как все, что требовалось, не было автозаполнением. Я смог решить эту проблему, перейдя в мои настройки проекта, перейдя на JavaScript | Библиотеки, проверяющие "Node.js Core Modules" и "Node.js Globals", и нажмите "Apply".

Ответ 2

В соответствии с ссылкой, которую я опубликовал в комментариях, вам нужно добавить свой глобальный каталог npm, используя Настройки → Каталоги

Вы можете узнать, где находится ваш глобальный каталог:

> npm ls -g

Источник: http://youtrack.jetbrains.com/issue/WEB-1880

Ответ 3

Мой ответ работает только с WebStorm 7 и далее:

  • Откройте диалоговое окно "Параметры" ( "Параметры файла" ) и выберите "JavaScript" | Node.js.

    • Укажите путь к интерпретатору Node.js, а версия Node.js будет определена автоматически.

    • Нажмите "Настроить", а затем нажмите кнопку "Загрузить и настроить", чтобы загрузить источники Node.js в локальную папку системы IntelliJ. Библиотека библиотеки с именем "Node.js v. Core Library" будет создана из извлеченных исходных файлов основных модулей.

    • Наконец, определите область использования только что созданной библиотеки JavaScript. По умолчанию весь проект будет добавлен в область использования. Если это не сработает для вас, вы можете настроить область использования, щелкнув гиперссылку "Изменить область использования".

Если вам нужна дополнительная информация, ознакомьтесь с официальным блоком JetBrain на Присоединение источников Node.js основных модулей, что в идеале решить вашу проблему, это на самом деле для меня, по крайней мере.

Ответ 4

Это происходит, когда вы объявляете несколько модулей с запятой, например:

var sys = require("sys"),
    http= require("http");

в приведенном выше примере sys будет экспортировать только как автоматическую опцию, когда http будет работать нормально. Если вы выполните:

var sys = require("sys");
var http= require("http");

оба sys и http будут работать нормально.