2012-11-02 11 views
24

Mam aplikację węzła, z którą właśnie zacząłem pracować i za każdym razem, gdy próbuję ją uruchomić, mówi, że brakuje modułu. Właśnie używałem npm install ... dla każdego modułu, ale po zrobieniu około 10 z nich zastanawiam się, czy istnieje sposób na to, aby npm usunąć wszystkie potrzebne moduły dla aplikacji węzła bez mnie instalowania każdego z nich ręcznie. Czy można to zrobić?Czy można zainstalować wszystkie brakujące moduły dla aplikacji węzła?

Odpowiedz

35

Tak, o ile zależność jest wymieniona w pozycji package.json.

W katalogu zawierającego package.json, wystarczy wpisać:

npm install 
1

można uruchomić npm install yourModule --save w celu zainstalowania i automatycznie aktualizuje package.json z nowo zainstalowanym modułem.

Po ponownym uruchomieniu npm install po raz drugi zostanie zainstalowana każda poprzednio dodana zależność i nie będzie trzeba ponownie instalować każdej zależności, jedna po drugiej.

11

Stworzyłem moduł npm do automatycznego instalowania brakujących modułów.

npm-install-missing

będzie zainstalować wszystkie zależności aplikacji i podrzędne zależności automatycznie. Jest to przydatne, gdy submoduły nie są poprawnie zainstalowane.

+1

Wykrywa nawet wymagane wersje zależności! – msangel

+0

Kiedy próbuję tego Mówi mi, że nie mam brakujących modułów, chociaż kiedy uruchamiam listę npm Jest załadowany z brakującymi i niezałatwionymi zależnościami –

-1

Napisałem scenariusz do tego. Dodaj go przed pierwszą funkcją wymagającą:

(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

działa to świetnie, ale kończy się niepowodzeniem pierwszego uruchomienia, ponieważ zależności są instalowane przy próbie uruchom resztę pliku. jak możemy poczekać, aż twój skrypt się skończy, zanim zacznie działać reszta pliku? – Dat30

Powiązane problemy