Jeśli mam plik package.json zdefiniowany w katalogu głównym aplikacji i uruchomię npm install -g
go, zainstaluje on wszystkie zależności zdefiniowane w pliku package.json, globablly.
Jednak to nie wydaje się działać w odwrotnej kolejności.
Jeśli zrobię to npm uninstall -g
w katalogu głównym mojej aplikacji, generuje błąd, oczekując, że przekażę mu nazwę pakietu.
Czy nie powinno to również odinstalować tych samych pakietów, które zainstalowałem?
czy robię coś źle?
Odpowiedzi:
Jeśli używasz Bash, po prostu przełącz się do folderu zawierającego plik package.json i uruchom następujące polecenie:
W przypadku pakietów zainstalowanych globalnie przejdź do swojego
%appdata%/npm
folderu (jeśli jest w systemie Windows) i uruchom to samo polecenie.EDYCJA: To polecenie nie działa z npm 3.3.6 (Node 5.0). Teraz używam następującego polecenia Bash, które zamapowałem na npm_uninstall_all w moim pliku .bashrc:
Dodatkowy bonus? jest dużo szybszy!
https://github.com/npm/npm/issues/10187
źródło
npm uninstall <package>
dla każdego folderu. Sam to zrobiłem i działa doskonale!npm uninstall
dba o to, dlatego ta sztuczka się przydaje.foreach($package in ls node_modules){npm uninstall $package}
tr is not recognized
To zadziałało dla mnie:
wiersz polecenia lub gitbash do folderu node_modules w projekcie, a następnie wykonaj:
Usunięto wszystkie pakiety lokalne dla tego projektu.
źródło
W systemie Windows przejdź do katalogu node_modules i uruchom go w programie PowerShell
źródło
Niedawno znalazłem polecenie węzła, które umożliwia odinstalowanie wszystkich zależności programistycznych w następujący sposób:
Jak wspomniałem, to polecenie odinstalowuje tylko pakiety zależności deweloperskich. Przynajmniej pomogło mi to, że nie musiałem tego robić ręcznie.
źródło
Wskazówka dla użytkowników systemu Windows: Uruchom to polecenie programu PowerShell z
node_modules
katalogu nadrzędnego:źródło
To zasadniczo tworzy fałszywy, pusty plik package.json, wywołuje
npm prune
usunięcie wszystkiego w node_modules, przywraca oryginalny plik package.json i ponownie instaluje wszystko.Niektóre inne rozwiązania mogą być bardziej eleganckie, ale podejrzewam, że jest to szybsze i wyczerpujące. W innych wątkach widziałem, jak ludzie sugerują po prostu usunięcie katalogu node_modules, ale przynajmniej w przypadku Windows powoduje to, że npm dusi się później, ponieważ katalog bin znika. Może na Linuksie zostanie poprawnie przywrócony, ale nie Windows.
źródło
Właściwie nie ma takiej opcji, jeśli chcesz odinstalować pakiety,
package.json
po prostu zrób tonpm ls
w tym samym katalogu, który jestpackage.json
zależny i użyjnpm uninstall <name>
lubnpm rm <name>
dla pakietu, który chcesz usunąć.źródło
npm i
„
npm i
” nie tylko zainstaluje brakujące pliki, ale zaktualizuje node_modules, aby pasowały do pliku package.jsonźródło
( Nie powtarzaj tych kroków, dopóki nie przeczytasz wszystkiego )
U mnie wszystkie wymienione rozwiązania nie działały. Więc poszedłem
/usr/lib
i tam pobiegłemAle usunął też
npm
paczkę i tylko połowę paczek (aż dotarła do litery n).Więc spróbowałem ponownie zainstalować węzeł przez przewodnik węzłowy.
Ale nie zainstalował się
npm
ponownie.Postanowiłem więc przeinstalować cały węzeł
sudo apt-get remove nodejs
I ponownie zainstalować według powyższego przewodnika.Teraz NPM znowu działa, ale moduły globalne nadal istnieją. Sprawdziłem więc zawartość katalogu
/usr/lib/node_modules
i wydaje mi się, że jedyne ważne jest tutajnpm
. Więc zmodyfikowałem powyższe polecenie, aby odinstalować wszystko oprócznpm
Usunął wszystkie moduły, które nie zostały poprzedzone
@
. Więc rozszerzyłem pętlę dla podkatalogów.Mój
/usr/lib/node_modules
teraz zawiera tylkonpm
i połączone pakiety.źródło
Inną PROSTĄ opcją jest usunięcie node_modules i package-lock.json
Następnie możesz spróbować ponownie zainstalować pakiety npm
źródło
Nawet ty nie musisz w tym celu uruchamiać pętli.
Możesz usunąć wszystkie moduły node_modules za pomocą jedynego pojedynczego polecenia: -
źródło
Użytkownicy Powershell:
foreach($package in ls node_modules){npm uninstall $package}
Dzięki @JustMailer
źródło
Wycofując się z VIKAS KOHLI i jedmao , możesz to zrobić
wersja jednoprzewodowa:
wersja wieloliniowa:
źródło