2012-10-12 14 views
217

Czy istnieje prosty sposób na ponowne zainstalowanie wszystkich pakietów , od których zależy moja aplikacja (tj. Znajdują się one w folderze Moje aplikacje węzeł_modules)?Jak ponownie zainstalować zależności aplikacji za pomocą npm?

+4

'odbudować npm' może również pomóc w niektórych problemach z natywnymi zależnościami –

+1

W przypadku, gdy pomaga innym: Jeśli próbujesz ponownie zainstalować jeden pakiet, 'npm aktualizacja ' działa świetnie – rinogo

Odpowiedz

354

Najprostszym sposobem, jaki widzę, jest usunięcie folderu node_modules i wykonanie npm install.

+11

Uzgodnione; zakładając, że utworzyłeś plik 'package.json' dla twojej aplikacji. – JohnnyHK

+7

Pamiętaj, że uruchomienie 'npm install' po usunięciu katalogu' node_modules' może spowodować, że różne wersje zależności zdefiniowane w 'package.json' będą rozbierane. Jeśli potrzebujesz bardzo specyficznych wersji zależności dla swojej aplikacji, zachowaj ostrożność i spójrz na 'npm shrinkwrap' lub sprawdź w katalogu' node_modules' kontrolkę źródła. – smithclay

+7

@smithclay Zdefiniowałem jawną wersję pakietów w package.json mojej aplikacji, więc powinno być dobrze, prawda? – trusktr

72

Właściwa droga to wykonanie npm update. To naprawdę potężne polecenie, aktualizuje brakujące pakiety, a także sprawdza, czy można użyć nowszej wersji pakietu alreaddy.

Przeczytaj Intro to NPM, aby zrozumieć, co możesz zrobić z npm.

+36

Ale jeśli nie ma nowszego pakietu, to nic nie da, prawda? Próbuję * wymuszać * ponowną instalację, nawet jeśli pakiet jest już w najnowszej wersji. – trusktr

+2

Jeśli nie ma brakujących pakietów, to sprawdzi, czy może używać najnowszych wersji pakietów (w tym zależności pakietów) wymienionych w package.json. Więc, w istocie, uaktualni pakiety, jeśli to możliwe. Ale to się nie powtórzy. Jeśli chcesz to zrobić za pomocą poleceń, możesz wykonać 'npm uninstall ', aby odinstalować określony pakiet lub wykonać 'npm uninstall', aby odinstalować wszystkie pakiety. – himanshu

+1

Próbowałem robić 'npm uninstall' bez określania pakietu, ale to powoduje błąd. – trusktr

20

W większości przypadków używam następującego polecenia, aby całkowicie zreinstalować wszystkie moduły węzłów (upewnij się, że znajdujesz się w folderze projektu).

rm -rf node_modules && npm install 

Można również uruchomić npm cache clean po usunięciu folderu node_modules aby mieć pewność, że nie ma żadnych zależności buforowane.

20

npm zaktualizowane polecenie zainstalowania CLI i dodaje --force flagę

-f lub --force argumentem zmusi npm sprowadzić zasobów zdalnych nawet jeśli lokalna kopia istnieje na dysku.

npm install

4

Można użyć reinstall module znaleźć w KMP.

Po zainstalowaniu go, można użyć następującego polecenia:

reinstall 

Jedyna różnica z ręcznego usuwania node_modules folder i podejmowania npm install jest to, że ta komenda automatycznie cache clear NPM za. Możesz wykonać trzy kroki w jednym poleceniu.

+0

@ g00glen00b Edytowałem tak, że teraz zawiera przydatne informacje bez hiperłączy – Rob

+0

@ g00glen00b To doskonale; nie czyni to kandydatem do usunięcia. Zobacz [ten post] (https://meta.stackexchange.com/questions/225370/your-answer-is-in-another-castle-when-is-an-answer-not-an-answer) - W szczególności adresuje krótkie odpowiedzi za pomocą linku pod warunkiem, że po usunięciu hiperłącza znajdują się użyteczne informacje (np. nazwa biblioteki) – Rob

Powiązane problemy