2012-12-13 17 views
10

Używam WebStorm 5.0.4 do opracowania aplikacji node.js.Włączanie autouzupełniania w WebStorm dla modułów node.js zainstalowanych za pośrednictwem npm

zainstalowałem kilka modułów węzła globalnie za pomocą

npm install -g module-name
i połączone je do projektu z wykorzystaniem
npm link module-name

autouzupełnianie nie działa dla dowolnego z zainstalowanych modułów NPM. Działa tylko w przypadku modułów podstawowych (np. http lub path).

Ponadto WebStorm daje ostrzeżenie „Nierozwiązane funkcja lub metoda xyz” dla dowolnej funkcji nazywam od NPM zainstalowane moduły.

Jak skonfigurować WebStorm do autouzupełniania i ogólnie zapoznać się z zainstalowanymi modułami, które mam require?

+0

http://youtrack.jetbrains.com/issue/WEB-1880 – Alex

Odpowiedz

2

Jak na link napisałem w komentarzach, musisz dodać swój globalny katalog npm korzystając
Preferencje -> Katalogi

można dowiedzieć się, gdzie jest katalog globalny uruchamiając:

> npm ls -g 

Źródło: http://youtrack.jetbrains.com/issue/WEB-1880

+0

Dodałem globalny katalog globalny npm do katalogów Content Root projektu, ale to nie pomogło. Używam modułu async, mam 'var async = require ('async');' ale kiedy wpisuję 'asynchroniczny' jedynym dostępnym autouzupełnianiem jest' export' z 'index.js' z' node_modules/async'. Jakieś pomysły? – midinastasurazz

+1

Czy próbowałeś unieważnić pamięć podręczną? Plik -> Unieważnij pamięć podręczną. Następnie ponownie uruchom Webstorm – Alex

+0

Właśnie zrobiłem Invalidate & Restart. Bez zmian w autouzupełnianiu. Próbowałem modułów 'async' i' express'. Jedyną opcją autouzupełniania jest 'export' z odpowiednich plików' index.js' w 'node_modules/async' oraz' node_modules/express'. – midinastasurazz

17

nie jestem pewien, czy to stanowi dla danej sytuacji, jednak wpadłem na podobny temat w WebStorm 5.0.4, natomiast wszystko, co ponownie quired nie był autouzupełniania. Udało mi się rozwiązać ten problem, przechodząc do moich Ustawień projektu, przechodząc do JavaScript | Biblioteki, sprawdzanie "Node.js Core Modules" i "Node.js Globals", i kliknięcie stosuje się.

+4

Dla każdego, kto tu przyjeżdża, skorzystaj z opcji "Włączanie autouzupełniania w WebStorm dla node.js". Po prostu dla mnie zadziałało. –

0

Dzieje się tak, gdy deklarują wielu modułów przecinkami takie jak:

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

w powyższym przykładzie sys będzie miał tylko eksportu jak auto pełnej opcji gdzie jako http będzie działać dobrze. Jeśli wykonasz:

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

zarówno sys jak i http będą działały poprawnie.

+0

Zostało to naprawione w nowszych wersjach – Zaptree

2

Moja odpowiedź działa tylko na WebStorm 7 roku:

  1. dialogowym Otwieranie ustawień (Plik | Ustawienia domyślne) i wybierz JavaScript | Node.js.

    1. Określ ścieżkę do node.js tłumacza oraz wersja node.js zostanie określona automatycznie.

    2. Kliknij przycisk Konfiguruj, a następnie kliknij przycisk "Pobierz i skonfiguruj", aby pobrać źródła Node.js do lokalnego folderu systemu IntelliJ. Biblioteka JavaScript o nazwie "Node.js v. Core Library" zostanie utworzona z wyodrębnionych plików źródłowych modułów podstawowych.

    3. Wreszcie zdefiniowania zakresu użycia dla biblioteki JavaScript właśnie utworzony. Domyślnie cały projekt zostanie dodany do zakresu zastosowania. Jeśli to nie działa, możesz dostosować zakres użycia, klikając hiperłącze "Edytuj zakres użycia".

Jeżeli potrzebują Państwo więcej informacji, przeczytać na oficjalnym blogu JetBrain jest na Attaching the sources of Node.js core modules, które powinny najlepiej rozwiązać problemu, to faktycznie dla mnie przynajmniej.

Powiązane problemy