Wenn ich eine package.json-Datei in meinem Anwendungsstamm definiert und ausgeführt npm install -g
habe, werden alle in package.json definierten Abhängigkeiten global installiert.
Dies scheint jedoch nicht umgekehrt zu funktionieren.
Wenn ich dies npm uninstall -g
in meinem Anwendungsstamm tue, wird ein Fehler ausgegeben, der mich dazu veranlasst, ihm einen Paketnamen zu übergeben.
Sollte dies nicht auch die gleichen Pakete deinstallieren, die ich installiert habe?
Mache ich etwas falsch?
Antworten:
Wenn Sie Bash verwenden, wechseln Sie einfach in den Ordner mit Ihrer Datei package.json und führen Sie Folgendes aus:
Wechseln Sie bei global installierten Paketen in Ihren
%appdata%/npm
Ordner (unter Windows) und führen Sie denselben Befehl aus.BEARBEITEN: Dieser Befehl bricht mit npm 3.3.6 (Knoten 5.0) ab. Ich verwende jetzt den folgenden Bash-Befehl, den ich in meiner .bashrc-Datei npm_uninstall_all zugeordnet habe:
Bonus hinzugefügt? es ist viel schneller!
https://github.com/npm/npm/issues/10187
quelle
npm uninstall <package>
für jeden Ordner ausgeführt. Ich habe das selbst gemacht und es funktioniert hervorragend!npm uninstall
kümmert sich das darum, weshalb dieser Trick nützlich ist.foreach($package in ls node_modules){npm uninstall $package}
tr is not recognized
Das hat bei mir funktioniert:
Eingabeaufforderung oder gitbash in den Ordner node_modules in Ihrem Projekt und führen Sie dann Folgendes aus:
Alle lokalen Pakete für dieses Projekt wurden entfernt.
quelle
Für Windows gehen Sie zu node_modules dir und führen Sie dies in Powershell aus
quelle
Ich habe kürzlich einen Knotenbefehl gefunden, mit dem alle Entwicklungsabhängigkeiten wie folgt deinstalliert werden können:
Wie bereits erwähnt, deinstalliert dieser Befehl nur die Entwicklungsabhängigkeitspakete. Zumindest hat es mir geholfen, es nicht manuell machen zu müssen.
quelle
Tipp für Windows-Benutzer: Führen Sie diesen PowerShell-Befehl im
node_modules
übergeordneten Verzeichnis aus:quelle
Dies erstellt im Wesentlichen eine gefälschte, leere package.json, ruft
npm prune
auf, um alles in node_modules zu entfernen, stellt die ursprüngliche package.json wieder her und installiert alles neu.Einige der anderen Lösungen mögen eleganter sein, aber ich vermute, dass dies schneller und umfassender ist. In anderen Threads habe ich gesehen, dass Leute vorgeschlagen haben, nur das Verzeichnis node_modules zu löschen, aber zumindest für Windows führt dies dazu, dass npm danach erstickt, weil das bin-Verzeichnis fehlt. Vielleicht wird es unter Linux richtig wiederhergestellt, aber nicht unter Windows.
quelle
Eigentlich gibt es keine Möglichkeit , das zu tun, wenn Sie von zu deinstallieren Pakete wollen
package.json
einfach tunnpm ls
auf dem gleichen Verzeichnis , daspackage.json
beruht und die Verwendungnpm uninstall <name>
odernpm rm <name>
für das Paket , das Sie entfernen möchten.quelle
npm i
"
npm i
" installiert nicht nur fehlende Deps, sondern aktualisiert auch node_modules so, dass sie mit package.json übereinstimmenquelle
( Replizieren Sie diese Schritte erst, wenn Sie alles gelesen haben. )
Bei mir haben alle genannten Lösungen nicht funktioniert. Also ging ich zu
/usr/lib
und rannte dorthinEs wurden aber auch das
npm
Paket und nur die Hälfte der Pakete entfernt (bis es den Buchstaben n erreichte).Also habe ich versucht, den Knoten erneut über die Knotenanleitung zu installieren.
Aber es wurde nicht
npm
erneut installiert .Also habe ich beschlossen, den gesamten Knoten neu zu installieren
sudo apt-get remove nodejs
und erneut gemäß der obigen Anleitung zu installieren.Jetzt funktioniert NPM wieder, aber die globalen Module sind noch da. Also habe ich den Inhalt des Verzeichnisses überprüft
/usr/lib/node_modules
und scheint das einzig Wichtige hier zu seinnpm
. Also habe ich den obigen Befehl bearbeitet, um alles außer zu deinstallierennpm
Es wurden alle Module entfernt, denen kein Präfix vorangestellt wurde
@
. Also habe ich die Schleife für Unterverzeichnisse erweitert.Mein
/usr/lib/node_modules
enthält jetzt nurnpm
und verknüpfte Pakete.quelle
Auch Sie müssen die Schleife dafür nicht ausführen.
Sie können alle node_modules mit dem einzigen Befehl löschen: -
quelle
Powershell-Benutzer:
foreach($package in ls node_modules){npm uninstall $package}
Danke @JustMailer
quelle
Piggy-backing off von Vikas Kohli und jedmao , können Sie dies tun
einzeilige Version:
mehrzeilige Version:
quelle
Eine weitere EINFACHE Option ist das Löschen der node_modules und der package-lock.json
Danach können Sie versuchen, die npm-Pakete neu zu installieren
quelle