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?
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 quegrunt v0.4.x
fue lanzado), es posible que tenga una versión anterior degrunt
todavía en su sistema. Esto se debe a quegrunt
versiones inferiores a0.4.x
se instalaron globalmente, lo que causó mucho dolor al actualizar/mantener versiones. -
grunt
ygrunt-cli
son dos cosas diferentes.-
grunt
(sin la "cli") se instala generalmente en el nivel de 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 que se ejecutan las versiones locales degrunt
en diferentes proyectos/carpetas. puede instalarse localmente, pero es más útil cuando se instala globalmente, una vez.
-
grunt
solo se instala localmente (ejecutandonpm install grunt
).-
grunt-cli
es preferiblemente instalado globalmente (por corriendonpm install -g grunt-cli
).grunt-cli
officialnpm
page todavía advierte contra instalargrunt
(sin la cli) globalmente. - Si desea desinstalar la instalación global de
grunt-cli
, ejecutenpm uninstall -g grunt-cli
. Este problema en el proyecto de gruntjs soporta este procedimiento. -
Nunca instale
grunt
globalmente (ejecutandonpm 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:
- si hay otro usuario en la máquina que podría usar global paquetes npm-no cambian 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
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.
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
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.
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!
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:)
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