¿Cómo desinstalar módulos npm en el nodo js?

1132

Como se conoce comúnmente, cualquier módulo de la NGP se puede instalar mediante la ejecución de un simple comando: npm install <module_name>.

He instalado algunos módulos que ya no uso y solo quiero quitarlos. Tengo algunas preguntas al respecto:

  • ¿Tenemos algún comando o proceso para desinstalar un módulo desde la raíz (algo así como npm uninstall <module_name>) o simplemente eliminaremos los archivos del módulo?

  • ¿Cómo nos afecta si conservamos los módulos no utilizados?

Manish Kumar
fuente
2
Si desea eliminar todos los módulos npm, vaya aquí: stackoverflow.com/questions/9283472/…
daniel

Respuestas:

1731

El comando es simplemente npm uninstall <name>

Los documentos de Node.js https://npmjs.org/doc/ tienen todos los comandos que necesita saber con npm.

Una instalación local estará en el node_modules/directorio de su aplicación. Esto no afectará a la aplicación si un módulo permanece allí sin referencias.

Sin embargo, si está eliminando un paquete global, cualquier aplicación que haga referencia a él se bloqueará.

Aquí hay diferentes opciones:

npm uninstall <name>elimina el módulo node_modulespero no lo actualizapackage.json

npm uninstall <name> --savetambién lo elimina de dependenciesadentropackage.json

npm uninstall <name> --save-devtambién lo elimina de devDependenciesadentropackage.json

npm uninstall -g <name> --save también lo elimina globalmente

Menztrual
fuente
19
intente esto npm -g ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm -g rmpara desinstalar todos los módulos instalados globalmente. si está en Windows, entonces necesita instalar Cygwin o git para ejecutarlo
Nur Rony
1
Para desinstalar todos los módulos globales: stackoverflow.com/questions/5926672/… Y eliminar la carpeta node_modules Para desinstalar todos los módulos locales, eliminar la carpeta local node_modules
DanteTheSmith
1
He intentado eliminar [email protected] usando todos los comandos enumerados anteriormente, y todavía está allí
Steve Staple
20
npm uninstall <name> now removes the module from both package.json` ynode_modules
philip oghenerobo balogun
1
a partir de 2019, el nodo 13 (también creo que 10+) elimina los paquetes de package.json a través denpm uninstall <name>
Maksim Shamihulau
86

Si no funciona, npm uninstall <module_name>pruébalo globalmente escribiendo -g.

Tal vez solo necesite hacerlo como superusuario / administrador con sudo npm uninstall <module_name>.

fuma
fuente
44
-ges útil si hay un npm WARN uninstall.
Lorem Ipsum Dolor
49

Bueno, para dar una respuesta completa a esta pregunta, hay dos métodos : (por ejemplo, llamamos al módulo instalado como módulo1)

  1. Para eliminar module1 sin cambiar package.json:

    npm uninstall module1

  2. Para eliminar module1 con el cambio de package.json y eliminarlo de las dependencias en package.json:

    npm uninstall --save module1

Nota: para simplificar los comandos mencionados anteriormente, puede usar -S en lugar de --save , y puede usar remove , rm , r , un , unlink en lugar de desinstalar

Ehsan
fuente
En aras de la integridad, uno debe tener cuidado si quiere eliminar la dependencia GLOBAL o LOCAL. Para los globales, use -g con lo anterior. También: Para desinstalar todos los módulos globales: stackoverflow.com/questions/5926672/… Y eliminar la carpeta node_modules Para desinstalar todos los módulos locales, elimine la carpeta local node_modules
DanteTheSmith
28

Simplemente instalo el lápiz por defecto en mi directorio de inicio, así que solo lo uso npm uninstall styluspara desconectarlo, o puede probarlo npm rm <package_name>.

GrahamLe
fuente
17

Para desinstalar el módulo de nodo:

npm uninstall <module_name>  

Esto eliminará el módulo de node_modules, pero no de package.json. Entonces, cuando hagamos la instalación de npm nuevamente, descargará el módulo.

Entonces, para eliminar el módulo de package.json, use:

npm uninstall <module_name> --save  

Esto también elimina la dependencia de package.json.

Y si desea desinstalar cualquier módulo global, puede usar:

npm -g uninstall <module_name> --save 

Esto eliminará la dependencia globalmente.

Vishnu Mishra
fuente
7

Para eliminar paquetes a node_modules/granel, también puede eliminarlos package.json, guardarlos y luego ejecutarlos npm pruneen el terminal.

Esto eliminará los paquetes que existen en el sistema de archivos, pero que no se usan / declaran package.json.

PS> Esto es particularmente útil en Windows, ya que a menudo puede encontrar problemas al no poder eliminar algunos archivos debido al "límite de longitud de ruta excedido".

último índigo
fuente
6

Descubrí esto de la manera difícil, incluso si es aparentemente obvio.

Inicialmente intenté recorrer el directorio node_modules que se ejecuta npm uninstall module-namecon un bucle for simple en un script. Descubrí que no funcionará si llamas a la ruta completa, por ejemplo

npm uninstall module-name

estaba trabajando, pero

npm uninstall /full/path/to/node_modules/module-name 

no estaba funcionando.

kayleeFrye_onDeck
fuente
6

También puede ejecutar lo siguiente como abreviatura:

npm un packageName o npm rm packageName

Nota: Agregue -gal final del comando para desinstalar paquetes globales.

Mwiza
fuente
4

Para usuarios de Windows: si desea eliminar todos los módulos de nodo instalados a la vez:

  • PowerShell abierto
  • Vaya dentro de la carpeta node_modules (cd node_modules)
  • Ejecute este comando: "npm uninstall (Get-ChildItem) .Name"

Desinstalará todos los módulos.

Manish Kumar
fuente
4

A veces npm uninstall -g packageNameno funciona.

En este caso, puede eliminar el paquete manualmente.

En Mac, vaya a la carpeta /usr/local/lib/node_modulesy elimine la carpeta con el paquete que desee. Eso es. Verifique su lista de paquetes instalados globalmente con este comandonpm list -g --depth=0

Nastro
fuente
Por curiosidad, ¿por qué "npm uninstall -g packageName" no funciona en algunos casos?
Mwiza
porque es un gran código con errores ... es realmente difícil adaptarse a cada versión del sistema operativo. Creo que esa es la razón
Nastro
3

Actualización npm 5:

A partir de npm 5.0.0 , los módulos instalados / desinstalados se agregan / eliminan como una dependencia por defecto, por lo que la opción --save ya no es necesaria.

correr

npm uninstall <package>

por ejemplo:

npm uninstall mongodb

También eliminará el módulo de la carpeta node_modules y el archivo package.json

codemirror
fuente
1
Cierto; si desea el comportamiento predeterminado anterior (dejando intacto package.json), use el indicador --no-save docs.npmjs.com/cli/install
Marcus
2

La uninstallopción no funcionó para mí cuando intenté usar el mismo comando que el que usé en la instalación (como estaba instalando con la @latestdirectiva)

Entonces, por ejemplo, instalé un paquete como este:

npm install  @ngtools/webpack@latest

Y luego quise desinstalarlo, así que usé el mismo comando (incluido @latest)

npm uninstall  @ngtools/webpack@latest

Entonces, la desinstalación anterior no funcionó, tengo que eliminar @latesty luego funcionó bien

npm uninstall  @ngtools/webpack

espero que esto ayude

Ahmed Elkoussy
fuente
1
# login as root (might be required depending on install)
su - 
# list all global packages
npm ls -g --depth=0
# list all local (project) packages
npm ls -p --depth=0
# remove all global packages
npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
# remove all local packges
npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm

# NOTE (optional): to use node with sudo you can add the bins to /usr/bin
# NOTE $PATHTONODEINSTALL is where node is installed (e.g. /usr/local/node)
sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node
sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm
snassr
fuente
1

La solución más simple es:

npm uninstall packageName --save-dev

Vea los nombres de los paquetes de nivel superior en su proyecto:

npm list --depth=0

La salida será como:

app@0.1.0 /home/jackkobec/projects/myAppName
├── packageName@packageVersion
├── express@4.16.4

Copie el nombre del paquete y ejecute el comando de desinstalación npm. Ejemplo para paquete express:

npm uninstall express --save-dev
Jackkobec
fuente
1

Para desinstalar un módulo usando npm, puede usar:

npm uninstall moduleName

Además, si desea desinstalar y desea que el cambio se refleje en su package.json, puede usar el indicador --save, de esta manera:

npm uninstall moduleName --save
OR
npm uninstall -S

Y si desea desinstalar un módulo de devDependencies y desea que el cambio se refleje en package.json, puede usar el indicador -D, de esta manera:

npm uninstall moduleName -D
Harshit Agarwal
fuente
1

Para desinstalar el módulo de nodo:

npm uninstall <module_name>  

Esto eliminará el módulo de node_modules, pero no de package.json.

Elimine el módulo del paquete.json utilizando este comando:

npm uninstall <module_name> --save 

Esto también se elimina de package.json.

Codificador delgado
fuente
0

Además, si ha comenzado a usar yarn, en lugar de npm:
yarn remove <package-name>

Es el equivalente de:
npm uninstall <package-name> --save

Esto
eliminará el paquete package.jsony lo
desinstalará de la node-modulescarpeta de su proyecto.

SherylHohman
fuente
0

Puede eliminar un módulo de nodo manualmente. Para ventanas,

  1. Vaya al node_modulesdirectorio de su repositorio.

  2. Elimine el módulo de nodo que no desea.

  3. ¡No olvide eliminar la referencia al módulo en su package.json! Su proyecto aún puede ejecutarse con la referencia, pero puede obtener un error. Tampoco desea dejar referencias no utilizadas en su cuenta package.jsonque puedan causar confusión más adelante.

Súper jade
fuente
-1

Utilizar

npm uninstall <package_name>

Ejemplo para desinstalar express

npm uninstall express
Harry
fuente
-1

En caso de que sea Windows, ejecute CMD como administrador y escriba npm -g uninstall <package name>.

Osama Al-Banna
fuente
-2

Si desea desinstalar varios módulos, simplemente ejecute el npm uninstall. Luego vaya package.jsony elimine el módulo no deseado desde allí, y luego simplemente ejecute el comando npm install. Debería solucionar tu problema.

Tanumay Ghosh
fuente