it-swarm.com.de

Wie deinstallieren Sie alle in package.json (NPM) aufgeführten Abhängigkeiten?

Wenn in meinem Anwendungsstamm eine package.json-Datei definiert ist und npm install -g ausgeführt wird, werden alle in package.json definierten Abhängigkeiten global installiert.

Dies scheint jedoch nicht umgekehrt zu funktionieren.

Wenn ich npm uninstall -g in meinem Anwendungsstammverzeichnis mache, wird ein Fehler ausgegeben, der mich auslöst, um ihm einen Paketnamen zu übergeben.

Sollte dies nicht auch die gleichen Pakete deinstallieren, die ich installiert habe?

Mache ich etwas falsch?

79
qodeninja

Wenn Sie Bash verwenden, wechseln Sie einfach in den Ordner, in dem sich Ihre package.json-Datei befindet, und führen Sie Folgendes aus:

for package in `ls node_modules`; do npm uninstall $package; done;

Wechseln Sie bei global installierten Paketen in Ihren %appdata%/npm-Ordner (wenn unter Windows), und führen Sie denselben Befehl aus.

BEARBEITEN: Dieser Befehl bricht mit npm 3.3.6 (Knoten 5.0). Ich verwende jetzt den folgenden Bash-Befehl, den ich in meiner .bashrc-Datei npm_uninstall_all zugeordnet habe:

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

Zusätzlicher Bonus es geht viel schneller!

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

144
jedmao

Das hat für mich funktioniert:

eingabeaufforderung oder gitbash in den Ordner node_modules in Ihrem Projekt und führen Sie dann Folgendes aus:

npm uninstall *

Alle lokalen Pakete für dieses Projekt wurden entfernt.

53
Druubacca

Für Windows gehen Sie zu node_modules dir und führen Sie dies in Powershell aus

npm uninstall (Get-ChildItem).Name 
31
Sameer

Ich habe kürzlich einen Knotenbefehl gefunden, mit dem alle Entwicklungsabhängigkeiten wie folgt deinstalliert werden können:

npm Prune --production

Wie bereits erwähnt, deinstalliert dieser Befehl nur die Entwicklungsabhängigkeitspakete. Zumindest half es mir, es nicht manuell machen zu müssen.

19
chalo

Eigentlich gibt es keine Option, dies zu tun. Wenn Sie Pakete von package.json deinstallieren möchten, müssen Sie einfach npm ls in demselben Verzeichnis ausführen, auf das package.json angewiesen ist, und verwenden Sie npm uninstall <name> oder npm rm <name> für das zu entfernende Paket.

7
Gntem

Tipp für Windows-Benutzer: Führen Sie diesen PowerShell-Befehl im node_modules-übergeordneten Verzeichnis aus:

ls .\node_modules | % {npm uninstall $_}
5
y0n1
// forcibly remove and reinstall all package dependencies
ren package.json package.json-bak
echo {} > package.json
npm Prune
del package.json
ren package.json-bak package.json
npm i

Dadurch wird im Wesentlichen ein gefälschtes leeres package.json erstellt, npm Prune aufgerufen, um alles in node_modules zu entfernen, das ursprüngliche package.json wiederherzustellen und alles neu zu installieren.

Einige der anderen Lösungen sind vielleicht eleganter, aber ich vermute, dass dies schneller und erschöpfender ist. In anderen Threads, die ich gesehen habe, schlagen Leute vor, einfach das node_modules -Verzeichnis zu löschen, aber zumindest für Windows führt dies dazu, dass npm danach erstickt, weil das bin-Verzeichnis nicht mehr vorhanden ist. Vielleicht wird es unter Linux richtig restauriert, aber keine Fenster.

3
meem
  1. entfernen Sie unerwünschte Abhängigkeiten aus package.json
  2. npm i

"npm i" installiert nicht nur fehlende deps, sondern aktualisiert node_modules so, dass es mit der package.json übereinstimmt

0
Misaka_0x447f

Auch müssen Sie die Schleife dafür nicht ausführen.

Sie können alle Knotenmodule löschen, indem Sie nur einen einzigen Befehl verwenden: -

npm uninstall `ls -1 node_modules | tr '/\n' ' '`
0
VIKAS KOHLI

PowerShell-Benutzer: foreach($package in ls node_modules){npm uninstall $package}

Vielen Dank an JustMailer

0