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?
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 daygrunt v0.4.x
was released ), vous avez peut-être une version plus anciennegrunt
qui persiste encore dans votre système. C'est parce que les versionsgrunt
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
etgrunt-cli
sont deux choses différentes.-
grunt
(sans" cli") est habituellement installé au niveau du projet (lorsqu'il est indiqué commedevDependency
danspackage.json
) en exécutantnpm install
. C'est aussi connu comme une installation locale . -
grunt-cli
est la base sous-jacente sur laquelle les versions locales degrunt
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écutantnpm install grunt
). -
grunt-cli
est de préférence installée à l'échelle mondiale (en cours d'exécutionnpm install -g grunt-cli
).grunt-cli
officielnpm
page encore met en garde contre installationgrunt
(sans les cli) à l'échelle mondiale. - si vous voulez désinstaller l'installation globale de
grunt-cli
, Lanceznpm 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écutionnpm 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:
- s'il y a un autre utilisateur sur la machine qui pourrait utiliser global paquets npm-ne pas changer la propriété de /usr/local
- https://apple.stackexchange.com/questions/1393/are-my-permissions-for-usr-local-correct
- https://askubuntu.com/questions/261326/is-it-safe-to-chown-usr-local
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.
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
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!
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 :)