Comment désinstaller un package installé à l'aide du lien npm?

162

Lors de l'installation d'un package de nœuds à l'aide sudo npm linkdu répertoire du package, comment puis-je désinstaller le package une fois le développement terminé?

npm linkinstalle le package sous forme de lien symbolique dans l'emplacement global du package du système ('/ usr / local / lib`). Cela vous permet de tester le package tout en le développant, sans avoir à l'installer encore et encore.

Quelle commande npm dois-je exécuter pour supprimer à nouveau le lien?

nwinkler
la source

Réponses:

166

Le package peut être désinstallé à l'aide de la même commande de désinstallation ou rm qui peut être utilisée pour supprimer les packages installés. La seule chose à garder à l'esprit est que le lien doit être désinstallé globalement - l' --globalindicateur doit être fourni.

Afin de désinstaller le foopackage lié globalement , la commande suivante peut être utilisée (en utilisant sudosi nécessaire, en fonction de votre configuration et de vos autorisations)

sudo npm rm --global foo

Cela désinstallera le package.

Pour vérifier si un package est installé, la npm lscommande peut être utilisée:

npm ls --global foo
nwinkler
la source
5
Si vous n'êtes pas sûr du nom du package lié, vous pouvez également npm ls --global --depth 0lister toutes vos dépendances de niveau supérieur
schu34
1
Cela n'a pas fonctionné pour moi à cause de problèmes d'autorisation, même avec sudo. J'ai créé le répertoire manquant avec un mannequin package.jsonavec le champ nameet version( namedoit correspondre au nom du package, versionpeut être n'importe quoi). Dans ce dossier, j'ai couru npm link && npm unlinket cela a fonctionné.
silvenon
npm uninstallà partir du dossier de la bibliothèque locale fonctionnera également.
barre oblique
132

vous pouvez utiliser unlinkpour supprimer le lien symbolique.

Par exemple:

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

Pour réinstaller à partir de votre package.json:

npm unlink redis
npm install

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

Blair Anderson
la source
4
N'est-ce pas unlinkla même chose que rmpour npm? Ils partagent la même page de manuel (avec uninstall).
nwinkler
1
@nwinkler pouvez-vous partager un lien?
Blair Anderson
12
Le code source npm utilise rm, unlink, remove, r et un comme alias pour la désinstallation: github.com/npm/npm/blob / ... - voir ligne 66ff.
nwinkler
Le lien au bas de cette réponse est mort pour moi.
Liron Yahdav
De npm itoute façon, ne supprime- t-il pas tous les liens?
Toivo Säwén
19

douleur de lien npm:

-Nom du module gulp -task

-Nom du projet project-x


Vous voulez lier gulp-task :

1: Allez dans le répertoire gulp-task puis faites npm linkcela pour créer un lien symbolique entre le projet et vos modules globaux

2: Accédez à votre projet project-x puis npm installassurez-vous de supprimer le répertoire node_modules actuel


Maintenant que vous voulez supprimer cette folie et utiliser la vraie tâche gulp , nous avons deux options:

Option 1: Dissocier via npm:

1: Accédez à votre projet et npm unlink gulp-taskcela supprimera le module installé lié

2: Allez dans le répertoire gulp-task et faites npm unlinkpour supprimer le lien symbolique. Notez que nous n'avons pas utilisé le nom du module

3: célébrer


Et si cela ne fonctionnait pas, vérifiez en localisant votre module global installé. Mon emplacement est ls -la /usr/local/lib/node_modules/si vous utilisez NVM, ce sera un chemin différent


Option 2: supprimez le lien symbolique comme un gourou Linux normal

1: localisez vos dépendances globales cd /usr/local/lib/node_modules/

2: supprimer le lien symbolique consiste simplement à utiliser la rmcommande

rm gulp-task assurez-vous que vous n'avez pas /à la fin

rm gulp-task/ est faux 🔥🚨

rm gulp-task ✔️

KhaledMohamedP
la source
faire un simple npm-unlinksupprimé tous les paquets de mon projet.
cst1992
2

Si vous avez fait quelque chose comme accidentellement npm linkgénérateur webapp après que vous avez changé, vous pouvez le réparer en clonant le générateur droit et la liaison qui .

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

"npm install" remplace toutes les dépendances dans vos node_modules installés par "npm link" par des versions de npmjs (spécifiées dans votre package.json)

Eugenio
la source