467 Stimmen

Befehl zum Entfernen aller npm-Module global

Gibt es einen Befehl zum Entfernen aller globalen npm-Module? Wenn nicht, was schlagen Sie vor?

26voto

jedmao Punkte 9676

Wechsel einfach in dein Verzeichnis %appdata%/npm und führe Folgendes aus...

für Paket in `ls node_modules`; do npm deinstallieren $package; done;

EDIT: Dieser Befehl funktioniert nicht mit npm 3.3.6 (Node 5.0). Ich verwende jetzt den folgenden Bash-Befehl, den ich in meiner .bashrc-Datei auf npm_uninstall_all gemappt habe:

npm deinstallieren `ls -1 node_modules | tr '/\n' ' '`

Zusätzlicher Bonus? Es geht viel schneller!

https://github.com/npm/npm/issues/10187

Wie deinstalliert man alle Abhängigkeiten, die in der package.json aufgeführt sind (NPM)?

22voto

Bill Punkte 24851

Wenn Sie alle von Ihnen installierten Pakete entfernen möchten, können Sie das npm -g ls-Befehl verwenden, um diese zu finden, und dann npm -g rm, um sie zu entfernen.

20voto

In Windows gehen Sie zum Verzeichnis "C:\Benutzer{Benutzername}\AppData\Roaming" und entfernen Sie den npm-Ordner manuell

17voto

eush77 Punkte 3720

Wenn Sie jq installiert haben, können Sie sogar ohne grep/awk/sed auskommen:

npm ls -g --json --depth=0 |
  jq -r '.dependencies|keys-["npm"]|join("\n")' |
  xargs npm rm -g

Auf Debian und abgeleiteten Distributionen können Sie jq installieren mit:

sudo apt-get install jq

5voto

bvj Punkte 3124

BS von OP nicht angegeben. Für Windows kann dieses Skript verwendet werden, um die lokalen und globalen Module und den Cache des Benutzers zu löschen.

Ich habe festgestellt, dass auf Linux der globale Root wirklich global für das System ist, anstatt für den angegebenen Benutzer. Das Löschen des globalen Root kann daher keine gute Idee für ein gemeinsam genutztes System sein. Abgesehen davon, kann ich das Skript auch in bash übertragen, falls Interesse besteht.

Für Windows speichern Sie es in einer CMD-Datei, um es auszuführen.

@ECHO OFF
SETLOCAL EnableDelayedExpansion 
SETLOCAL EnableExtensions

SET /A ecode=0

:: überprüfen
SET /P conf="Möchten Sie alle globalen und lokalen npm-Module löschen und den npm-Cache leeren? Fortfahren (j/[n])?
IF /I NOT "%conf%"=="j" (
  ECHO Operation abgebrochen
  SET /A ecode=!ecode!+1
  GOTO END
)

:: globalen und lokalen npm-Root löschen
FOR %%a IN ("" "-g") DO (

  :: Pfad des Root in Variable speichern
  SET cmd=npm root %%~a
  FOR /f "usebackq tokens=*" %%r IN (`!cmd!`) DO (SET npm_root=%%r)

  :: vorsichtig
  ECHO Überprüfung des Modulpfads "!npm_root!"
  IF "!npm_root:~-12!"=="node_modules" (
    IF NOT EXIST "!npm_root!" (
      ECHO npm-Root existiert nicht "!npm_root!"
    ) ELSE (
      ECHO Lösche "!npm_root!" ...
      :: löschen
      RMDIR /S /Q "!npm_root!"
    )
  ) ELSE (
      ECHO Verdächtiger npm-Root, ignoriere "!npm_root!"
  )
)

:: Cache leeren
ECHO Löschen des npm-Caches ...
call npm cache clean

:: Fertig
ECHO Fertig

:END

ENDLOCAL & EXIT /b %ecode%

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X