2012-12-13 24 views
10

Utilizzo WebStorm 5.0.4 per sviluppare un'app node.js.Abilitazione del completamento automatico in WebStorm per i moduli node.js installati tramite npm

Ho installato diversi moduli nodo utilizzando globalmente

npm install -g module-name
e legato nel progetto utilizzando
npm link module-name

Autocompletion non funziona per qualsiasi dei moduli NPM installati. Funziona solo per i moduli principali (ad esempio http o path).

Inoltre, WebStorm fornisce un avviso "Funzione non risolta o metodo xyz" per qualsiasi funzione chiamata dai moduli npm installati.

Come faccio a rendere WebStorm completamento automatico e in genere viene a conoscenza dei moduli installati che I require?

+0

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

risposta

2

Come per il link che ho postato nei commenti, è necessario aggiungere la directory globale npm utilizzando
Preferenze -> Directory

È possibile scoprire dove la directory globale è quello di eseguire:

> npm ls -g 

Fonte: http://youtrack.jetbrains.com/issue/WEB-1880

+0

Ho aggiunto la directory globale npm globale alle directory di Content Root del progetto ma non è stata di aiuto. Io uso il modulo asincrono, ho 'var async = require ('async');' ma quando digito 'async' l'unico completamento automatico disponibile è' exports' da 'index.js' da' node_modules/async'. Qualche idea? – midinastasurazz

+1

Hai provato a invalidare le cache? File -> Invalida cache. Quindi riavviare la webstorm – Alex

+0

Ho appena finito Invalidate & Restart. Nessun cambiamento nel completamento automatico. Ho provato i moduli 'async' e' express'. L'unica opzione di completamento automatico è 'exports' dai corrispondenti file' index.js' in 'node_modules/async' e' node_modules/express'. – midinastasurazz

17

non sono sicuro se questo rappresenta per la vostra situazione particolare, però mi sono imbattuto in un problema simile in WebStorm 5.0.4, mentre tutto ciò che è stato ri la richiesta non è stata completata automaticamente. Sono stato in grado di risolvere questo problema andando nelle mie Impostazioni progetto, navigando su JavaScript | Librerie, controllo di "Moduli Core Node.js" e "Globali Node.js" e facendo clic su Applica.

+4

Per chi arriva qui b/c hai cercato su Google "Abilitando il completamento automatico in WebStorm per node.js" assicurati di averlo fatto. Ha funzionato solo per me. –

0

Questo accade quando si dichiara più moduli con una virgola, come:

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

nell'esempio di cui sopra sys avrà solo le esportazioni come opzione di completamento automatico in cui, come http funzionerà benissimo. Se lo fai:

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

sia sys che http funzioneranno bene.

+0

Questo problema è stato risolto nelle versioni più recenti – Zaptree

2

La mia risposta funziona solo su WebStorm 7 in poi:

  1. finestra di dialogo Apri le impostazioni (File | Impostazioni predefinite) e selezionare JavaScript | Node.js.

    1. Specificare il percorso dell'interprete Node.js e la versione di Node.js verrà determinata automaticamente.

    2. Fare clic su Configura e quindi fare clic sul pulsante "Scarica e configura" per scaricare i sorgenti Node.js nella cartella locale del sistema IntelliJ. Una libreria JavaScript denominata "Node.js v. Core Library" verrà creata dai file di origine estratti dei moduli principali.

    3. Definire infine un ambito di utilizzo per la libreria JavaScript appena creata. Per impostazione predefinita, l'intero progetto verrà aggiunto all'ambito di utilizzo. Se ciò non funziona, puoi ottimizzare l'ambito di utilizzo facendo clic sul collegamento ipertestuale "Modifica ambito di utilizzo".

Se avete bisogno di ulteriori informazioni, leggere su blog ufficiale di JetBrain su Attaching the sources of Node.js core modules, che idealmente dovrebbe risolvere il tuo problema, in realtà ha fatto per me almeno.

Problemi correlati