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ó
grunt
estable 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 degrunt
más antigua en su sistema. Esto se debe a que las versiones degrunt
inferiores a0.4.x
se instalaron globalmente, lo que causó mucho dolor al actualizar / mantener las versiones. grunt
ygrunt-cli
son dos cosas diferentes.-
grunt
(sin el "cli") generalmente se instala en el nivel del proyecto (cuando aparece comodevDependency
enpackage.json
) ejecutandonpm install
. Eso también se conoce como una instalación local . -
grunt-cli
es la base subyacente sobre la cual las versiones locales degrunt
ejecutan en diferentes proyectos / carpetas. Se puede instalar localmente, pero es más útil cuando se instala globalmente, una vez.
-
grunt
solo se instala localmente (ejecutandonpm install grunt
).-
grunt-cli
se instala preferiblemente globalmente (ejecutandonpm install -g grunt-cli
).npm
página oficial denpm
grunt-cli
todaví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
grunt
globalmente (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/local
Eso 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.