Comment désinstaller npm package?

j'ai installé grunt en utilisant sudo npm install grunt et je ne peux pas l'enlever.

j'ai essayer:

$ sudo npm uninstall grunt

, mais il donne en garde:

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

j'ai aussi essayé rm, remove and unlink. et -g option, il donne:

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

mais je peux quand même appeler grunt depuis la ligne de commande.

MODIFIER :

$ 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 Je vous avez 2 répertoires avec npm? Est-il sécuritaire de simplement la supprimer?

54
demandé sur jcubic 2014-03-25 21:58:09

4 réponses

pour désinstaller un npm module du projet node_modules dossier, exécuter:

npm uninstall <module> --save

notez que les modules npm doivent être désinstallés à partir du même répertoire qui contient le dossier node_modules lors de l'exécution de cette commande. L'option --save l'enlèvera également de votre package.json

on peut également supprimer une dépendance locale/installation de module, par suppression de son répertoire dans le dossier local node_modules . Oui, il est sûr d'y supprimer les dépendances.

pour désinstaller un module npm qui a été installé globalement, exécuter:

npm uninstall -g <module>

peu importe d'où vous exécutez cette commande.

pour installer un module npm , exécuter: (à titre de référence seulement)

npm install <module>

...ou:

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

...ou:

npm install <module> --save-dev (si vous voulez ajouter une version minimale à la dépendance)

les Bonnes choses à savoir à propos de Grunt :

  • si vous avez installé grunt stable avant le 18 février 2013 ( the day grunt v0.4.x was released ), vous avez peut-être une version plus ancienne grunt qui persiste encore dans votre système. C'est parce que les versions grunt inférieures à 0.4.x ont été installées globalement, ce qui a causé beaucoup de difficultés lors de la mise à niveau/maintenance des versions.
  • grunt et grunt-cli sont deux choses différentes.

    • grunt (sans" cli") est habituellement installé au niveau du projet (lorsqu'il est indiqué comme devDependency dans package.json ) en exécutant npm install . C'est aussi connu comme une installation locale .
    • grunt-cli est la base sous-jacente sur laquelle les versions locales de grunt fonctionnent dans différents projets/dossiers. Il peut être installé localement, mais est plus utile lorsqu'il est installé globalement, une fois.
  • grunt n'est installé que localement (en exécutant npm install grunt ).

  • grunt-cli est de préférence installée à l'échelle mondiale (en cours d'exécution npm install -g grunt-cli ). grunt-cli officiel npm page encore met en garde contre installation grunt (sans les cli) à l'échelle mondiale.
  • si vous voulez désinstaller l'installation globale de grunt-cli , Lancez npm uninstall -g grunt-cli . Cette question sur gruntjs , ce projet prend en charge de cette procédure.
  • ne Jamais installer grunt globalement (en cours d'exécution npm install -g grunt ).

Sur npm et sudo

sudo ça ne marche pas bien avec npm . Seulement utilisation si vous devez. Voici deux citations sur les avantages et les inconvénients de son utilisation:

citant Isaac Z. Schlueter sur son Introduction to npm article:

je vous encourage fortement à ne pas faire de gestion de paquets avec sudo! Les paquets peuvent exécuter des scripts arbitraires, ce qui fait de sudoing une commande de gestionnaire de paquets aussi sûr qu'une coupe de tronçonneuse. Bien sûr, c'est rapide et certainement va couper à travers tous les obstacles, mais vous pourriez réellement vouloir que cet obstacle reste là.

je recommande de le faire une fois à la place:

sudo chown -R $USER /usr/local

Qui définit votre compte d'utilisateur que le propriétaire du répertoire /usr/local, de sorte que vous pouvez juste émettre des commandes habituelles. Alors vous n'aurez jamais à utiliser sudo quand vous installer ou nœud du problème mnp commandes.

c'est beaucoup mieux de cette façon. /usr / local est censé être ce que vous avez installé, après tout.

encore une autre prise mentionnée par Andrei Karpushonak :

il y a des problèmes de sécurité et des limitations fonctionnelles concernant la modification de la propriété de / usr / local à l'utilisateur actuel:

cela dit, si vous voulez installer global module sans utiliser sudo, Je ne vois pas de meilleure solution (de point de vue pragmatique) que ceux mentionnés. La sécurité par rapport à la facilité d'utilisation est un sujet très large, et il n'y a pas de réponse facile pour cela - tout dépend de vos exigences.

96
répondu Wallace Sidhrée 2017-05-23 12:26:35

il m'est arrivé la même chose. Sur le fait de faire

which grunt

je suis le chemin /usr/local/bin/. Il y avait un dossier grognon à l'intérieur de ça . Mais en exécutant la commande (même à l'intérieur du chemin / usr / local / bin/):

sudo npm uninstall -g grunt

a Obtenu l'avertissement de désinstallation n'est pas installé

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

sudo npm install -g grunt-cli

et en essayant d'enlever était juste en tapant grunt

Donc, une fois que j'exécute

sudo npm unistall -g grunt-cli 

grunt a été retiré.

bien que vous ayez la mention en question que vous courez

sudo npm install grunt

mais vérifiez quand même si vous faites la même erreur et lancez-la avec grunt-cli

4
répondu Aditi Saxena 2016-01-29 11:55:58

Dans certains cas, il peut être nécessaire d'utiliser des mnp "supprimer un paquet".

npm - suppression d'un package

Description

" cela désinstalle un paquet, en supprimant complètement tout ce que npm a 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é que l'utilisation du

which grunt 

ou le

whereis grunt 
Les commandes

dans le CLI / console fournissent une sortie incomplète et confuse.

ces deux commandes retourneront le chemin de l'installation grunt-cli , mais le retourneront simplement comme grunt .

utilisant aussi,

which grunt-cli

ou le

whereis grunt-cli

ne revient pas toute sortie vers la console CLI. Je crois qu'il s'agit d'un problème/fonctionnalité d'espace de noms avec la NGP.

j'ai également eu une situation où j'ai été incapable de désinstaller le grunt-cli avec la fonction de désinstallation de npm comme recommandé par les autres contributeurs ci-dessus.

la seule chose qui a fonctionné pour moi était d'utiliser la fonction npm supprimer avec le nom complet du programme comme démontré ci-dessous.

npm rm -g grunt-cli

cela devrait retournez ce qui suit à votre console.

unbuild grunt-cli@#.##.#

Bonne Chance!

1
répondu RunningTalus 2015-07-20 21:10:18

utiliser en premier celui-ci

which grunt-cli

ou

which grunt

et cela vous montrera le chemin vers le module

dans mon cas c'était dans le /usr / local/ bin /

une fois entré dans le dossier bin, je viens d'écrire

sudo rm grunt

Et que c'était la fin de celui-ci :)

1
répondu azuneca 2015-08-27 09:32:48