Comment désinstaller le paquet npm?

J’ai installé grunt en utilisant sudo npm install grunt et je ne peux pas le supprimer.

J’ai essayé:

 $ sudo npm uninstall grunt 

mais cela donne à WARN:

 npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli" 

J’ai aussi essayé rm, enlever et dissocier. et l’option -g , il donne:

 npm WARN uninstall not installed in /usr/lib/node_modules: "grunt" 

mais je peux toujours appeler grunt depuis la ligne de commande.

EDIT :

 $ whereis grunt grunt: /usr/local/bin/grunt $ file /usr/local/bin/grunt /usr/local/bin/grunt: symbolic link to `../lib/node_modules/grunt/bin/grunt' $ ls /usr/local/lib/node_modules grunt jshint $ ls /usr/lib/node_modules bower csslint devtools-terminal npm plato 

Pourquoi j’ai 2 répertoires avec npm? Est-il sûr de simplement le supprimer?

Pour désinstaller un module npm du dossier node_modules du projet, exécutez:

npm uninstall --save

Notez que les modules npm doivent être désinstallés du même répertoire que celui contenant le dossier node_modules lors de l’exécution de cette commande. L’option --save le supprimera également de votre package.json

On peut également supprimer une installation de dépendance / module locale en supprimant son répertoire du dossier node_modules local. Oui, il est sécuritaire de supprimer les dépendances.

Pour désinstaller un module npm installé globalement, exécutez:

npm uninstall -g

Peu importe où vous exécutez cette commande.

Pour installer un module npm , exécutez: (uniquement comme référence)

npm install

…ou:

npm install (s’il y a un fichier package.json à la racine de votre projet)

…ou:

npm install --save-dev (si vous voulez append une version minimum à la dépendance)

Bonnes choses à savoir sur Grunt :

  • Si vous avez installé grunt stable avant le 18 février 2013 ( le jour où grunt v0.4.x été publié ), une version plus ancienne de votre système pourrait encore apparaître. C’est parce que les versions grunt inférieures à 0.4.x ont été installées à l’échelle mondiale, ce qui a causé beaucoup de problèmes lors de la mise à niveau / maintenance des versions.
  • grunt et grunt-cli sont deux choses différentes.

    • grunt (sans le “cli”) est généralement installé au niveau du projet (lorsqu’il est répertorié en tant que devDependency dans package.json ) en exécutant npm install . C’est aussi une installation locale .
    • grunt-cli est la base sous-jacente sur laquelle les versions locales de grunt s’exécutent dans différents projets / dossiers. Il peut être installé localement, mais il est plus utile une fois installé globalement.
  • grunt n’est installé que localement (en exécutant npm install grunt ).

  • grunt-cli est de préférence installé globalement (en exécutant npm install -g grunt-cli ). grunt-cli page officielle de grunt-cli met toujours en garde contre l’ installation de grunt (sans le cli) à l’échelle mondiale.
  • Si vous souhaitez désinstaller l’installation globale de grunt-cli , exécutez npm uninstall -g grunt-cli . Ce problème sur le projet de gruntjs prend en charge cette procédure.
  • N’installez jamais grunt globalement (en exécutant npm install -g grunt ).

Sur npm et sudo

sudo ne joue pas bien avec npm . Utilisez-le seulement si vous devez. Vous trouverez ci-dessous deux citations sur les avantages et les inconvénients de son utilisation:

Citant Isaac Z. Schlueter sur son introduction à l’ article npm :

Je vous encourage fortement à ne pas faire de gestion de paquets avec sudo! Les paquets peuvent exécuter des scripts arbitraires, ce qui rend la commande de gestionnaire de paquets aussi sûre qu’une coupe de cheveux à la tronçonneuse. Bien sûr, il est rapide et va certainement franchir tous les obstacles, mais vous voudrez peut-être que cet obstacle rest là.

Je recommande de le faire une fois à la place:

sudo chown -R $USER /usr/local

Cela définit votre compte d’utilisateur en tant que propriétaire du répertoire / usr / local, afin que vous puissiez simplement y envoyer des commandes normales. Ensuite, vous n’aurez plus jamais à utiliser sudo lorsque vous installez un noeud ou émettez des commandes npm.

C’est beaucoup mieux comme ça. / usr / local est censé être ce que vous avez installé, après tout.

Une autre prise mentionnée par Andrei Karpushonak :

Il existe certains problèmes de sécurité et limitations de fonctionnalités concernant la modification de la propriété de / usr / local pour l’utilisateur actuel:

Cela dit, si vous voulez installer un module global sans utiliser sudo, je ne vois pas de meilleure solution (du sharepoint vue pragmatique) que mentionné. La sécurité par rapport à la facilité d’utilisation est un sujet très vaste, et il n’ya pas de réponse facile à cela: tout dépend de vos besoins.

Cette même chose est arrivée avec moi. En train de faire

 which grunt 

J’ai le chemin / usr / local / bin /. Il y avait un dossier grognement à l’intérieur de cela. Mais sur commande en cours d’exécution (même depuis le chemin / usr / local / bin /):

 sudo npm uninstall -g grunt 

La désinstallation d’avertissement n’est pas installée

Solution: il s’avère que j’ai installé en utilisant la commande

 sudo npm install -g grunt-cli 

Et en essayant de supprimer était juste en tapant grognement

Donc, une fois que je cours

 sudo npm unistall -g grunt-cli 

grunt a été enlevé.

Bien que vous ayez mentionné en question que vous courez

 sudo npm install grunt 

Mais vérifiez toujours si vous faites la même erreur et lancez-le avec grunt-cli

Dans certains cas, il peut être nécessaire d’utiliser la fonctionnalité “supprimer un paquet” de npm.

npm – Supprimer un paquet

La description

“Cela désinstalle un paquet, en supprimant complètement tout npm installé en son nom.”

Sur votre troisième bloc de code, vous avez posté ce message:

 npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli" 

J’ai trouvé qu’en utilisant le

 which grunt 

ou la

 whereis grunt 

Les commandes de la CLI / console fournissent une sortie incomplète et confuse.

Ces deux commandes renvoient le chemin de l’installation grunt-cli , mais le renvoient simplement comme grunt .

En utilisant aussi,

 which grunt-cli 

ou la

 whereis grunt-cli 

ne renvoie aucune sortie à la console CLI. Je crois que c’est un problème / fonctionnalité d’espace de noms avec npm.

J’ai également été dans une situation où je n’ai pas pu désinstaller le grunt-cli avec la fonction de désinstallation de npm, comme recommandé par les autres consortingbuteurs ci-dessus.

La seule chose qui a fonctionné pour moi était d’utiliser la fonction de suppression de npm avec le nom complet du programme, comme indiqué ci-dessous.

 npm rm -g grunt-cli 

Cela devrait renvoyer les éléments suivants à votre console.

 unbuild grunt-cli@#.##.# 

Bonne chance!

Utilisez d’abord celui-ci

 quel grunt-cli

Ou

 quel grognement

Et cela vous montrera le chemin vers le module

Dans mon cas, c’était dans / usr / local / bin /

Une fois que je suis entré dans le dossier bin, je viens d’écrire

 sudo rm grunt

Et c’était la fin de ça 🙂