Gibt es einen Befehl zum Entfernen aller globalen npm-Module? Wenn nicht, was schlagen Sie vor?
Antworten
Zu viele Anzeigen?Der folgende Befehl entfernt alle globalen npm-Module. Hinweis: Dies funktioniert nicht unter Windows. Für eine funktionierende Windows-Version siehe Ollie Bennetts Antwort.
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
So funktioniert es:
npm ls -gp --depth=0
listet alle globalen Top-Level-Module auf (siehe die CLI-Dokumentation für ls)awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
zeigt alle Module an, die tatsächlich nicht npm selbst sind (endet nicht mit/npm
)xargs npm -g rm
entfernt alle globalen Module, die über die vorherige Pipe kommen
Für diejenigen, die Windows verwenden, ist der einfachste Weg, um alle global installierten npm-Pakete zu entfernen, den Inhalt von zu löschen:
C:\Benutzer\Benutzername\AppData\Roaming\npm
Sie können dort schnell hingelangen, indem Sie %appdata%/npm
entweder im Explorer, im Ausführungsfenster oder über das Startmenü eingeben.
Ich habe Kai Sternads Lösung ausprobiert, aber sie schien mir unvollkommen zu sein. Es blieben viele Sonderzeichen nach dem letzten awk
aus dem Abhängigkeitsbaum selbst übrig.
Also habe ich meine eigene Modifikation von Kai Sternads Lösung (mit ein wenig Hilfe von cashmere's Idee) entwickelt:
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm
npm ls -gp --depth=0
listet alle global installierten npm-Module im auswertbaren Format auf:
/home/leonid/local/lib
/home/leonid/local/lib/node_modules/bower
/home/leonid/local/lib/node_modules/coffee-script
...
awk -F/node_modules/ '{print $2}'
extrahiert Modulnamen aus den Pfaden und bildet die Liste aller global installierten Module.
grep -vE '^(npm|)$'
entfernt npm selbst und Leerzeilen.
xargs -r npm -g rm
ruft für jedes Modul in der Liste npm -g rm
auf.
Wie die Lösung von Kai Sternad funktioniert sie nur unter *nix.
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
hat für mich funktioniert
sudo npm list -g --depth=0.
listet alle auf oberster Ebene installierten aufawk -F ' ' '{print $2}'
entferntawk -F '@' '{print $1}'
gibt den Teil vor '@' aussudo xargs npm remove -g
entfernt das Paket global
- See previous answers
- Weitere Antworten anzeigen