Cómo desinstalar el paquete npm?


He instalado grunt usando sudo npm install grunt y no puedo eliminarlo.

He intentado:

$ sudo npm uninstall grunt

Pero da AVISO:

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

También he intentado 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.

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

¿Por qué tengo 2 directorios con npm? Es seguro simplemente eliminarlo?

Author: jcubic, 2014-03-25

4 answers

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 desinstalarse del mismo directorio que contiene la carpeta node_modules al ejecutar este comando. La opción --save también lo eliminará de su package.json

También se puede eliminar una instalación local de dependencia/módulo, 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 ejecute 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 tu proyecto)

...o:

npm install <module> --save-dev (si desea agregar una versión mínima a la dependencia)

Cosas buenas que debes saber sobre Grunt:

  • Si ha instalado grunt stable antes del 18 de febrero de 2013 (el día en que grunt v0.4.x fue lanzado), es posible que tenga una versión anterior de grunt todavía en su sistema. Esto se debe a que grunt versiones inferiores a 0.4.x se instalaron globalmente, lo que causó mucho dolor al actualizar/mantener versiones.
  • grunt y grunt-cli son dos cosas diferentes.

    • grunt (sin la "cli") se instala generalmente en el nivel de proyecto (cuando aparece como devDependency en package.json) ejecutando npm install. Eso también se conoce como una instalación local .
    • grunt-cli es la base subyacente sobre la que se ejecutan las versiones locales de grunt en diferentes proyectos/carpetas. puede instalarse localmente, pero es más útil cuando se instala globalmente, una vez.
  • grunt solo se instala localmente (ejecutando npm install grunt).

  • grunt-cli es preferiblemente instalado globalmente (por corriendo npm install -g grunt-cli). grunt-cli official npmpage todavía advierte contra instalar grunt (sin la cli) globalmente.
  • Si desea desinstalar la instalación global de grunt-cli, ejecute npm uninstall -g grunt-cli. Este problema en el proyecto de gruntjs soporta este procedimiento.
  • Nunca instale grunt globalmente (ejecutando npm install -g grunt).

El npm y sudo

sudo no funciona bien con npm. Solo úsalo si deber. A continuación se presentan dos citas sobre las ventajas y desventajas de su uso:

Citando Isaac Z. Schlueter en su Introducción al mnp artículo:

Le recomiendo encarecidamente que no haga gestión de paquetes con sudo! Los paquetes pueden ejecutar scripts arbitrarios, lo que convierte a sudoing en un comando del gestor de paquetes tan seguro como un corte de pelo con motosierra. Claro, es rápido y definitivamente va a cortar a través de cualquier obstáculo, pero en realidad es posible que desee que el obstáculo a quédate ahí.

Recomiendo hacer esto una vez en su lugar:

sudo chown -R $USER /usr/local

Que establece su cuenta de usuario como el propietario del directorio / usr / local, para que pueda sólo emite órdenes normales allí. Entonces usted nunca tendrá que usar sudo cuando usted instale node o emita comandos npm.

Es mucho mejor así. se supone que /usr/local es lo que instalaste, después de todo.

Otra captura mencionada por Andrei Karpushonak :

Hay ciertas preocupaciones de seguridad y limitaciones de funcionalidad respecto a cambiar la propiedad de/usr / local al usuario actual:

Dicho esto, si desea instalar el módulo global sin usar sudo, No veo ninguna solución mejor (desde el punto de vista pragmático) que la mencionada. Seguridad vs fácil de usar es un tema muy amplio, y no hay una respuesta fácil para eso - depende de tus necesidades.

 96
Author: Wallace Sidhrée,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:35

Esto mismo sucedió conmigo. En hacer

which grunt

Tengo la ruta /usr/local/bin/. Había un gruñido de carpeta dentro de esto . Pero al ejecutar el comando (incluso desde la ruta /usr/local/bin/):

sudo npm uninstall -g grunt

Tiene la advertencia desinstalar no instalado

Solución: resulta que instalé usando el comando

sudo npm install -g grunt-cli

Y mientras intentaba eliminar estaba escribiendo grunt

Así que una vez que corro

sudo npm unistall -g grunt-cli 

Grunt fue eliminado.

Aunque usted tiene mención en pregunta que se ejecuta

sudo npm install grunt

Pero comprueba si también estás cometiendo el mismo error y ejecútalo con grunt-cli

 4
Author: Aditi Saxena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 11:55:58

En algunos casos puede ser necesario usar la función "eliminar un paquete" de npm.

Npm - Eliminar un paquete

Descripción

"Esto desinstala un paquete, eliminando completamente todo npm instalado en su nombre."

En tu tercer bloque de código, publicaste este mensaje:

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

He encontrado que usando el

which grunt 

O el

whereis grunt 

Los comandos de la CLI/console proporcionan una salida incompleta y confusa.

Ambos de estos comandos devolverá la ruta de la instalación grunt-cli , pero devolverá esto simplemente como grunt .

También usando,

which grunt-cli

O el

whereis grunt-cli

No devuelve ninguna salida a la consola CLI. Creo que este es un problema/característica de 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 según lo recomendado por otros colaboradores anteriores.

La única cosa que trabajó para mí estaba utilizando el npm eliminar función con el nombre completo del programa como se muestra a continuación.

npm rm -g grunt-cli

Esto debería devolver lo siguiente a su consola.

unbuild grunt-cli@#.##.#

¡Buena Suerte!

 1
Author: RunningTalus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-20 21:10:18

Usa primero este

which grunt-cli

O

which grunt

Y esto le mostrará la ruta al módulo

En mi caso estaba en el/usr/local / bin /

Una vez que entré en la carpeta bin, simplemente escribí

sudo rm grunt

Y ese fue el final de todo:)

 1
Author: azuneca,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-27 09:32:48