gruntjs - plugin - Cómo desinstalar el paquete npm?
uninstall package node (4)
Instalé ronco usando sudo npm install grunt y no puedo eliminarlo.
Lo intento:
$ sudo npm uninstall grunt
pero da WARN:
npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
También probé rm, eliminar y desvincular. y -g opción, da:
npm WARN uninstall not installed in /usr/lib/node_modules: "grunt"
pero todavía puedo llamar a grunt desde la línea de comandos.
EDITAR :
$ 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
¿Por qué tengo 2 directorios con npm? ¿Es seguro simplemente eliminarlo?
En algunos casos, puede ser necesario utilizar la función "quitar un paquete" de npm.
Descripción
"Esto desinstala un paquete, eliminando por completo todo lo que npm instaló en su nombre".
En su tercer bloque de código, publicó este mensaje:
npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
He descubierto que usando el
which grunt
o el
whereis grunt
los comandos en la CLI / consola proporcionan una salida incompleta y confusa.
Ambos comandos devolverán la ruta de la instalación grunt-cli , pero devuelve esto simplemente como ronco .
También usando,
which grunt-cli
o el
whereis grunt-cli
no puede devolver ningún resultado a la consola CLI. Creo que esta es una cuestión / función del espacio de nombres con npm.
También tuve una situación en la que no pude desinstalar el grunt-cli con la función de desinstalación de npm recomendada por otros colaboradores anteriores.
Lo único que funcionó para mí fue utilizar la función npm remove con el nombre completo del programa, como se demuestra a continuación.
npm rm -g grunt-cli
Esto debería devolver lo siguiente a tu consola.
unbuild grunt-cli@#.##.#
¡Buena suerte!
Esto mismo me pasó a mí. Haciendo
which grunt
Obtuve path / usr / local / bin /. Hubo un gruñido en la carpeta dentro de esto. Pero en el comando de ejecución (incluso desde dentro de la ruta / usr / local / bin /):
sudo npm uninstall -g grunt
Tengo la desinstalación de advertencia no instalada
Solución: resulta que instalé usando el comando
sudo npm install -g grunt-cli
Y mientras trataba de quitarlo, solo estaba escribiendo un gruñido
Entonces, una vez que corro
sudo npm unistall -g grunt-cli
gruñido fue removido
Aunque tienes una mención en cuestión que corres
sudo npm install grunt
Pero aún así verifica si también estás cometiendo el mismo error y ejecútalo con grunt-cli
Usa primero este
which grunt-cli
O
which grunt
Y esto te mostrará el camino al módulo
En mi caso, estaba en / usr / local / bin /
Una vez que ingresé a la carpeta bin, escribí
sudo rm grunt
Y ese fue el final :)
Para desinstalar un módulo npm de la carpeta project node_modules , ejecute:
npm uninstall <module> --save
Tenga en cuenta que los módulos npm deben desinstalar del mismo directorio que contiene la carpeta node_modules cuando se ejecuta este comando. La opción --save también lo eliminará de su package.json . package.json
También se puede eliminar una instalación de dependencia / módulo local, eliminando su directorio de la carpeta local node_modules . Sí, es seguro eliminar dependencias allí.
Para desinstalar un módulo npm que se instaló globalmente, ejecute:
npm uninstall -g <module>
No importa desde dónde ejecuta este comando.
Para instalar un módulo npm , ejecute: (solo como referencia)
npm install <module>
...o:
npm install (si hay un archivo package.json en la raíz de su proyecto)
...o:
npm install <module> --save-dev (si desea agregar una versión mínima a la dependencia)
Cosas buenas que saber sobre Grunt :
- Si instaló
gruntestable antes del 18 de febrero de 2013 ( se lanzó el día degrunt v0.4.x), es posible que aún tenga una versión degruntmás antigua en su sistema. Esto se debe a que las versiones degruntinferiores a0.4.xse instalaron globalmente, lo que causó mucho dolor al actualizar / mantener las versiones. gruntygrunt-clison dos cosas diferentes.-
grunt(sin el "cli") generalmente se instala en el nivel del proyecto (cuando aparece comodevDependencyenpackage.json) ejecutandonpm install. Eso también se conoce como una instalación local . -
grunt-clies la base subyacente sobre la cual las versiones locales degruntejecutan en diferentes proyectos / carpetas. Se puede instalar localmente, pero es más útil cuando se instala globalmente, una vez.
-
gruntsolo se instala localmente (ejecutandonpm install grunt).-
grunt-clise instala preferiblemente globalmente (ejecutandonpm install -g grunt-cli).npmpágina oficial denpmgrunt-clitodavía advierte contra la instalación degrunt(sin cli) globalmente. - Si desea desinstalar la instalación global de
grunt-cli, ejecutenpm uninstall -g grunt-cli. Este problema en el proyecto de gruntjs es compatible con este procedimiento. - Nunca instale
gruntglobalmente (ejecutandonpm install -g grunt).
En npm y sudo
sudo no funciona bien con npm . Solo úsalo si debes. A continuación hay dos citas sobre las ventajas y desventajas de su uso:
Citando a Isaac Z. Schlueter en su artículo Introducción a la npm :
¡Te recomiendo encarecidamente que no hagas la gestión de paquetes con sudo! Los paquetes pueden ejecutar scripts arbitrarios, lo que hace que sudoir un comando de administrador de paquetes sea tan seguro como un corte de pelo con motosierra. Claro, es rápido y definitivamente va a atravesar cualquier obstáculo, pero en realidad podrías querer ese obstáculo para permanecer allí.
Recomiendo hacer esto una vez en su lugar:
sudo chown -R $USER /usr/localEso configura su cuenta de usuario como el propietario del directorio / usr / local, de modo que puede simplemente emitir comandos normales allí. Entonces nunca tendrá que usar sudo cuando instale el nodo o emita los comandos npm.
Es mucho mejor de esta manera. / usr / local se supone que es lo que instalaste, después de todo.
Otra captura mencionada por Andrei Karpushonak :
Existen ciertas preocupaciones de seguridad y limitaciones de funcionalidad con respecto a cambiar la propiedad de / usr / local al usuario actual:
- si hay otro usuario en la máquina que podría usar paquetes globales npm, no cambie la propiedad 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
Una vez dicho esto, si desea instalar un módulo global sin utilizar sudo, no veo ninguna solución mejor (desde el punto de vista pragmático) que la mencionada. La seguridad frente a la facilidad de uso es un tema muy amplio, y no hay una respuesta fácil para eso, solo depende de sus requisitos.