Jak ponownie zainstalować zależności aplikacji za pomocą npm?
384
Czy istnieje prosty sposób na ponowną instalację wszystkich pakietów, od których zależy moja aplikacja (tzn. Znajdują się one w folderze node_modules aplikacji)?
Zgoda; zakładając, że utworzyłeś package.jsonplik dla swojej aplikacji.
JohnnyHK,
8
Uważaj, że uruchomienie npm installpo usunięciu node_moduleskatalogu może doprowadzić package.jsondo rozebrania różnych wersji zależności zdefiniowanych podczas usuwania . Jeśli potrzebujesz bardzo specyficznych wersji zależności dla swojej aplikacji, zachowaj ostrożność i zajrzyj do katalogu npm shrinkwraplub sprawdź w nim kontrolę node_modulesźródła.
smithclay
9
@smithclay Zdefiniowałem jawną wersję pakietów w pliku package.json mojej aplikacji, więc powinno być dobrze, prawda?
trusktr
@vadim Testowałem zachowanie npm installi zawsze przywraca zależności i aktualizuje pakiety do najnowszych wersji, na co pozwala pakiet.json. Dlatego usuwanie node_modulesfolderów nie jest potrzebne, chyba że uważasz, że jest uszkodzony. Czy istnieje powód, dla którego uważasz, że należy go usunąć? Jeśli jednak zamierzasz usunąć wszelkie niepotrzebne pakiety, możesz npm prunezamiast tego wykonać
himanshu,
1
@himanshu masz rację npm installuaktualnia wszystkie moduły do stanu package.json. Ale pytanie brzmi: jak ponownie zainstalować wszystkie pakiety . Mogą więc być uszkodzone lub mogą wymagać odbudowania części binarnych po aktualizacji wersji node.js.
Vadim Baryshev
96
Właściwym sposobem jest wykonanie npm update. To naprawdę potężne polecenie, aktualizuje brakujące pakiety, a także sprawdza, czy można użyć nowszej wersji pakietu już zainstalowanego.
Przeczytaj wprowadzenie do NPM, aby zrozumieć, co możesz zrobić z npm.
Ale jeśli nie będzie nowszego pakietu, nic to nie da, prawda? Próbuję wymusić ponowną instalację, nawet jeśli pakiet jest już w najnowszej wersji.
trusktr
2
Jeśli nie ma brakujących pakietów, sprawdzi, czy może korzystać z najnowszych wersji pakietów (w tym zależności pakietów) wymienionych w pliku package.json. Zasadniczo więc zaktualizuje pakiety, jeśli to możliwe. Ale nie zostanie ponownie zainstalowany. Jeśli chcesz to zrobić za pomocą poleceń, możesz wykonać, npm uninstall <package_name>aby odinstalować określony pakiet lub wykonać, npm uninstallaby odinstalować wszystkie pakiety.
himanshu,
1
Próbowałem to zrobić npm uninstallbez podawania pakietu, ale to powoduje błąd.
trusktr
Czy masz plik package.json w katalogu folderów, w którym to wykonałeś? Jeśli odinstalowujesz pakiet globalny, musisz dodać -g
himanshu
1
Podany przez Ciebie link jest martwy, czy możesz podać nowy? (Znalazłem to, ale nie jestem pewien, czy można na to zmienić)
Motti,
62
Przez większość czasu używam następującego polecenia, aby uzyskać pełną ponowną instalację wszystkich modułów węzła (upewnij się, że jesteś w folderze projektu).
rm -rf node_modules && npm install
Możesz także uruchomić npm cache cleanpo usunięciu node_modulesfolderu, aby upewnić się, że nie ma żadnych buforowanych zależności.
Po zainstalowaniu możesz użyć następującego polecenia:
reinstall
Jedyną różnicą przy ręcznym usuwaniu node_modulesfolderów i tworzeniu npm installjest to, że to polecenie automatycznie usuwa pamięć podręczną npm. Tak więc możesz uzyskać trzy kroki w jednym poleceniu.
upd:npx reinstall to sposób na uruchomienie tego polecenia bez globalnej instalacji pakietu (tylko dla npm5 +)
@ g00glen00b Edytowałem, aby zawierał przydatne informacje bez hiperłączy
Rob
@ g00glen00b To w porządku; nie czyni z tego kandydata do usunięcia. Zapoznaj się z tym postem - w szczególności odpowiada on na krótkie odpowiedzi z linkiem, pod warunkiem, że po usunięciu hiperłącza dostępne są przydatne informacje (tj. Nazwa biblioteki)
Rob
6
Możesz to zrobić za pomocą jednego prostego polecenia:
który usuwa node_moduleskatalog i wykonuje npm installwtedy. Usunięcie przed instalacją zapewnia, że wszystkie pakiety zostaną ponownie zainstalowane.
Wykonaj ten krok, aby ponownie zainstalować moduły węzłów i zaktualizować je
działa, nawet jeśli folder node_modules nie istnieje. teraz wykonaj następujące polecenie synchronicznie. możesz także użyć „aktualizacji npm”, ale myślę, że wolałby to sposób
npm outdated // not necessary to run this command, but this will show outdated dependencies
npm install -g npm-check-updates // to install the "ncu" package
ncu -u --packageFile=package.json // to update dependencies version in package.json...don't run this command if you don't need to update the version
npm install: will install dependencies in your package.json file.
jeśli nie masz nic przeciwko wersji swoich zależności w pliku package.json, nie musisz wykonywać tych kroków, po prostu uruchom
npm rebuild
może również pomóc w rozwiązaniu niektórych problemów z rodzimymi zależnościaminpm update <packageName>
działa świetnieOdpowiedzi:
Najprostszym sposobem, jaki widzę, jest usunięcie
node_modules
folderu i wykonanienpm install
.źródło
package.json
plik dla swojej aplikacji.npm install
po usunięciunode_modules
katalogu może doprowadzićpackage.json
do rozebrania różnych wersji zależności zdefiniowanych podczas usuwania . Jeśli potrzebujesz bardzo specyficznych wersji zależności dla swojej aplikacji, zachowaj ostrożność i zajrzyj do katalogunpm shrinkwrap
lub sprawdź w nim kontrolęnode_modules
źródła.npm install
i zawsze przywraca zależności i aktualizuje pakiety do najnowszych wersji, na co pozwala pakiet.json. Dlatego usuwanienode_modules
folderów nie jest potrzebne, chyba że uważasz, że jest uszkodzony. Czy istnieje powód, dla którego uważasz, że należy go usunąć? Jeśli jednak zamierzasz usunąć wszelkie niepotrzebne pakiety, możesznpm prune
zamiast tego wykonaćnpm install
uaktualnia wszystkie moduły do stanu package.json. Ale pytanie brzmi: jak ponownie zainstalować wszystkie pakiety . Mogą więc być uszkodzone lub mogą wymagać odbudowania części binarnych po aktualizacji wersji node.js.Właściwym sposobem jest wykonanie
npm update
. To naprawdę potężne polecenie, aktualizuje brakujące pakiety, a także sprawdza, czy można użyć nowszej wersji pakietu już zainstalowanego.Przeczytaj wprowadzenie do NPM, aby zrozumieć, co możesz zrobić z npm.
źródło
npm uninstall <package_name>
aby odinstalować określony pakiet lub wykonać,npm uninstall
aby odinstalować wszystkie pakiety.npm uninstall
bez podawania pakietu, ale to powoduje błąd.Przez większość czasu używam następującego polecenia, aby uzyskać pełną ponowną instalację wszystkich modułów węzła (upewnij się, że jesteś w folderze projektu).
Możesz także uruchomić
npm cache clean
po usunięciunode_modules
folderu, aby upewnić się, że nie ma żadnych buforowanych zależności.źródło
npm
zaktualizowałem komendę CLIinstall
i dodałem--force
flagę.Argument
--force
(lub-f
) wymusinpm
pobranie zasobów zdalnych, nawet jeśli na dysku istnieje kopia lokalna.Widzieć
npm install
źródło
Możesz użyć modułu reinstalacji znalezionego w npm.
Po zainstalowaniu możesz użyć następującego polecenia:
Jedyną różnicą przy ręcznym usuwaniu
node_modules
folderów i tworzeniunpm install
jest to, że to polecenie automatycznie usuwa pamięć podręczną npm. Tak więc możesz uzyskać trzy kroki w jednym poleceniu.upd:
npx reinstall
to sposób na uruchomienie tego polecenia bez globalnej instalacji pakietu (tylko dla npm5 +)źródło
Możesz to zrobić za pomocą jednego prostego polecenia:
źródło
W systemie Windows możesz użyć
który usuwa
node_modules
katalog i wykonujenpm install
wtedy. Usunięcie przed instalacją zapewnia, że wszystkie pakiety zostaną ponownie zainstalowane.źródło
Wykonaj ten krok, aby ponownie zainstalować moduły węzłów i zaktualizować je
działa, nawet jeśli folder node_modules nie istnieje. teraz wykonaj następujące polecenie synchronicznie. możesz także użyć „aktualizacji npm”, ale myślę, że wolałby to sposób
jeśli nie masz nic przeciwko wersji swoich zależności w pliku package.json, nie musisz wykonywać tych kroków, po prostu uruchom
źródło