Wie deinstalliere ich ein Paket, das über npm link installiert wurde?


162

sudo npm linkWie kann ich bei der Installation eines Knotenpakets im Paketverzeichnis das Paket deinstallieren, wenn ich mit der Entwicklung fertig bin?

npm linkInstalliert das Paket als symbolischen Link am globalen Paketspeicherort des Systems ('/ usr / local / lib`). Auf diese Weise können Sie das Paket testen, während Sie es noch entwickeln, ohne es immer wieder installieren zu müssen.

Welchen npm-Befehl muss ich ausführen, um den Link wieder zu entfernen?

Antworten:


166

Das Paket kann mit demselben Befehl uninstall oder rm deinstalliert werden, mit dem installierte Pakete entfernt werden können. Das einzige, was zu beachten ist, ist, dass der Link global deinstalliert werden muss - das --globalFlag muss bereitgestellt werden.

Um das global verknüpfte fooPaket zu deinstallieren , kann der folgende Befehl verwendet werden ( sudofalls erforderlich, abhängig von Ihrem Setup und Ihren Berechtigungen).

sudo npm rm --global foo

Dadurch wird das Paket deinstalliert.

Um zu überprüfen, ob ein Paket installiert ist, kann der npm lsBefehl verwendet werden:

npm ls --global foo

5
Wenn Sie sich nicht sicher sind, wie das verknüpfte Paket heißt, können Sie auch npm ls --global --depth 0alle Abhängigkeiten der obersten Ebene
auflisten

1
Dies funktionierte bei mir aufgrund von Berechtigungsproblemen nicht, auch nicht mit sudo. Ich habe das fehlende Verzeichnis mit einem Dummy package.jsonmit dem Feld nameund erstellt version( namesollte mit dem Paketnamen übereinstimmen, versionkann alles sein). In diesem Ordner habe ich ausgeführt npm link && npm unlinkund es hat funktioniert.
Silvenon

npm uninstallaus dem lokalen Bibliotheksordner funktioniert auch.
BackslashN

132

Sie können unlinkden Symlink entfernen.

Beispielsweise:

cd ~/projects/node-redis 
npm link                 
cd ~/projects/node-bloggy
npm link redis             # links to your local redis

So installieren Sie von Ihrem package.json neu:

npm unlink redis
npm install

https://www.tachyonstemplates.com/npm-cheat-sheet/#unlinking-a-npm-package-from-an-application


4
Ist das nicht unlinkdasselbe wie rmfür npm? Sie teilen die gleiche Manpage (mit uninstall).
Nwinkler

1
@nwinkler kannst du einen Link teilen?
Blair Anderson

12
Der npm-Quellcode verwendet rm, unlink, remove, r und un als Aliase für die Deinstallation: github.com/npm/npm/blob/… - siehe Zeile 66ff.
Nwinkler

Der Link am Ende dieser Antwort ist für mich tot.
Liron Yahdav

Entfernt npm itrotzdem nicht alle Links?
Toivo Säwén

19

npm Link Schmerz:

-Modulname schluck-Aufgabe

-Projektname project-x


Sie möchten gulp-task verknüpfen :

1: Gehen Sie zum gulp-task-Verzeichnis und tun Sie dies npm link verknüpfen Sie das Projekt mit Ihren globalen Modulen

2: Gehen Sie zu Ihrem Projekt project-x und npm installentfernen Sie das aktuelle Verzeichnis node_modules


Jetzt wollen Sie diesen Wahnsinn beseitigen und die eigentliche Schluckaufgabe nutzen , wir haben zwei Möglichkeiten:

Option 1: Verknüpfung über npm aufheben:

1: Gehen Sie zu Ihrem Projekt und npm unlink gulp-taskentfernen Sie das verknüpfte installierte Modul

2: Gehen Sie zum gulp-task- Verzeichnis und npm unlinkentfernen Sie den Symlink. Beachten Sie, dass wir den Namen des Moduls nicht verwendet haben

3: feiern


Was ist, wenn dies nicht funktioniert hat? Überprüfen Sie dies, indem Sie Ihr global installiertes Modul suchen. Meine sind : die Lage , ls -la /usr/local/lib/node_modules/wenn Sie mit NVM wird es ein anderer Weg sein


Option 2: Entfernen Sie den Symlink wie einen normalen Linux-Guru

1: Suchen Sie Ihre globalen Abhängigkeiten cd /usr/local/lib/node_modules/

2: Das Entfernen von Symlink ist einfach mit dem rmBefehl

rm gulp-task Stellen Sie sicher, dass Sie /am Ende nicht haben

rm gulp-task/ ist falsch 🔥🚨

rm gulp-task ✔️


Durch ein einfaches npm-unlinkEntfernen wurden alle Pakete in meinem Projekt entfernt.
cst1992

2

Wenn Sie so etwas wie versehentlich getan haben npm linkGenerator-Webapp , nachdem Sie es geändert haben, können Sie das Problem beheben , indem Sie den richtigen Generator Klonen und die Verknüpfung , dass .

git clone https://github.com/yeoman/generator-webapp.git;
# for fixing generator-webapp, replace with your required repository
cd generator-webapp;
npm link;

0

"npm install" ersetzt alle Abhängigkeiten in Ihren mit "npm link" installierten node_modules durch Versionen von npmjs (in Ihrer package.json angegeben).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.