2012-11-02 17 views
24

Ho un'app di nodo con cui ho appena iniziato a lavorare e ogni volta che cerco di eseguirlo, dice che c'è un modulo mancante. Ho appena usato npm install ... per ogni modulo, ma dopo aver fatto circa 10 di loro mi chiedo se c'è un modo per fare in modo che npm abbatta tutti i moduli necessari per un'app nodo senza che io li installi manualmente. Può essere fatto?È possibile installare tutti i moduli mancanti per un'applicazione nodo?

risposta

35

Sì, a condizione che la dipendenza sia elencata in package.json.

Nella directory che contiene package.json, digitare semplicemente:

npm install 
1

È possibile eseguire npm install yourModule --save al fine di installare e aggiornare package.json con questo modulo appena installato automaticamente.

Quindi quando si esegue npm install una seconda volta verrà installata ogni dipendenza precedentemente aggiunta e non sarà necessario reinstallare ogni dipendenza una alla volta.

11

Ho creato un modulo npm per gestire l'installazione automatica dei moduli mancanti.

npm-install-missing

Si installerà automaticamente tutte le dipendenze app e sotto-dipendenze. Questo è utile quando i sottomoduli non sono installati correttamente.

+1

È anche possibile rilevare la versione richiesta delle dipendenze! – msangel

+0

Quando provo Mi dice che non ho moduli mancanti, anche se eseguo l'elenco npm Viene caricato con dipendenze mancanti e non soddisfatte –

-1

Ho scritto uno script per questo. Si prega di aggiungerlo prima della prima funzione richiesta:

(function(){ 
    var r=require; 
    require=function (n){ 
     try{ 
      return r(n) 
     } 
     catch(e){ 
      r('child_process').exec('npm i ' + n,function (err,body){ 
       try{ 

        console.log('Module "' +n + '"" not found, try to install. Please restart the app\n' + body) 
        return r(n); 
       } 
       catch(e){ 
       } 
      }) 
     } 
    } 
})() 
+0

funziona molto bene, ma fallisce la prima esecuzione, perché le dipendenze vengono installate quando si tenta di esegui il resto del file. come possiamo aspettare fino al termine del tuo script prima di iniziare a eseguire il resto del file? – Dat30

Problemi correlati