Cómo eliminar node_modules - Carpeta anidada profunda en Windows


229

Al intentar eliminar el directorio node_modules creado por npm install:

Los nombres de los archivos de origen son más grandes de lo que admite el sistema de archivos. Intente trasladarse a una ubicación que tenga un nombre de ruta más corto o cambie el nombre a nombres más cortos antes de intentar esta operación

También probé shift+ deletey todavía tengo el mismo problema.


try renaming to shorter name(s) before attempting this operation
SLaks

3
Gracias por su sugerencia, @ SLaks! Debería haber mencionado que también lo intenté, pero los archivos y directorios son muchos y profundos, tiene cosas como C: \ Users \ my_user_name \ projs \ backend \ node_modules \ imagemin \ node_modules \ imagemin-optipng \ node_modules \ optipng-bin \ node_modules \ bin-wrapper \ node_modules \ bin-check \ node_modules \ ejecutable \ node_modules \ meow \ node_modules \ camelcase-keys \ node_modules \ ... y continúa. No es práctico cambiar el nombre de los archivos manualmente y espero que haya formas más fáciles sin escribir un programa
leoh

1
Webstorm puede eliminar todo.
ozzimpact

Usé la herramienta Long Path Fixer y eliminé con éxito esta carpeta ".meteor". ( long-path-fixer.en.softonic.com )
Vu Doan

RUN INSTALL, npm install rimraf -g, RUN DELETE, rimraf node_modules
Jinna Balu

Respuestas:


438

Dado que este es el mejor resultado de Google, esto es lo que funcionó para mí:

Instalar RimRaf:

npm install rimraf -g

Y en la carpeta del proyecto, elimine la carpeta node_modules con:

rimraf node_modules

Si desea eliminar de forma recursiva:

rimraf .\**\node_modules

[ http://www.nikola-breznjak.com/blog/nodejs/how-to-delete-node_modules-folder-on-windows-machine/ ]


no funciona aquí: "Error: ENOTEMPTY, directorio no vacío". y el enlace suministrado no funciona!
olefrank

77
Soy el autor de la publicación del blog. @olefrank: esto tiende a suceder cuando intenta eliminar toda la carpeta (no solo node_modules), y también si tiene la carpeta abierta en una ventana del Explorador. Usagidon, gracias por vincular la fuente original.
Nikola

2
Eso no será útil si no tiene NodeJS, o si está tratando de eliminar los módulos globales de NodeJS después de desinstalarlo (es por eso que tuve que usar robocopy)
Zorgatone

1
Agregaré mis 2 centavos aquí para ser un poco más específico a la pregunta. Puede eliminar todas las carpetas node_modules de forma recursiva (usando el patrón global) de esta manera:rimraf .\**\node_modules
Artif3x

1
¡El comentario de @ Artif3x debe marcarse como la mejor respuesta! gracias por el consejo para eliminar de forma recursiva :-)
Juan Stoppa

111

Simplemente lo hice usando Winrar, esto puede parecer una solución extraña pero funciona muy bien.

  • clic derecho en la node_modulescarpeta
  • seleccione Add to archive ...del menú.
  • Se abre el cuadro de diálogo Winrar
  • solo marque la opción delete files after archiving
  • No olvides eliminar node_modules.rar después de terminar.


[ACTUALIZACIÓN] Esto también funciona con 7Zip



77
wow esto es astuto! +1 He estado usando robocopy aunque aparentemente esto se ha solucionado con nuevos npm o algo así
erp

1
@ChrisS ¿Cómo funciona con 7Zip? ¡Especialmente cuando se usa la GUI!
bennos

44
En 2016 (y especialmente en 2018) no debería tener que ser tan inteligente para eliminar un montón de archivos.
webelo

73

BORRAR solo usando el comando DOS sin ninguna instalación:

Cree una carpeta vacía "prueba" en la unidad C o D y use el siguiente comando DOS

robocopy /MIR c:\test D:\UserData\FolderToDelete > NUL

Después de completar el comando anterior, su carpeta estará vacía, ahora puede eliminarla.

No se preocupe, su carpeta de prueba siempre estará vacía, por lo que puede eliminarla en cualquier momento.


12
mejor respuesta, porque no necesita instalar nada
luschn

1
Después de probar rimraf y agregar una carpeta de red, esta es la solución más limpia que he encontrado. Gracias por compartir esto.
danyim

1
gran solución fácil.
bob.mazzo

2
Acabo de hacer un addion menor: > NUL. Cuando acabo de intentar esto, estaba siendo acelerado por la consola, y me iba a tomar 15 minutos o más. Con la redirección en su lugar, terminó en aproximadamente 2
Mike Caron el

Es curioso que para eliminar algunos archivos JS, necesite otra biblioteca JS.
linuxunil

30

Puede usar Git Bash para eliminar la carpeta:

ejemplo: c: \ users \ olefrank \ projects \ mynodeproject

rm -rf / c / users / olefrank / projects / mynodeproject


99
Esto no funcionó en Windows 7. Error de directorio no vacío
Miguel Stevens

55
También debe especificar el indicador -d, que también eliminará los directorios.
Stuart.Sklinar

o -fR para subir recursivamente a la cima y eliminar la carpeta también
Dan Kanze

@Karthiga -rf son indicadores / opciones / parámetros que le indican al RM cómo realizar la operación de eliminación. rdice recurrir a cualquier subdirectorio y fdice forzar la eliminación (no solicitar). -rfes una convención de Unix para especificar múltiples banderas / opciones a la vez.
Tim Coker

20

¡Usé GitBash para eliminar la carpeta!

rm -r node_modules

Me tomó un tiempo eliminar todo, ¡pero funcionó para mí!


Esto funcionó para mí. Estaba usando rimraf antes. Rimraf no funcionó y probé esto.
Saiyaff Farouk

Este debería ser el comentario principal. No, instalar algo solo para eliminar algo. Alternativamente, simplemente escribaRD node_modules
David MacNeil

15

Eliminar la carpeta de redes profundas como node_modules en Windows

  1. Opción 1

    Eliminar usando el rimrafpaquete NPM

    • Abra el símbolo del sistema y cambie su directorio a la carpeta donde node_modulesexiste la carpeta.

    • correr

      rimraf node_modules

    • Falta rimraf ERROR y luego instalar

      npm install rimraf -g

    • Cuando la instalación se complete, ejecute

      rimraf node_modules

  2. Opcion 2 :

    Detele sin instalar nada

    • Crear una carpeta con nombre testen cualquier unidad

      robocopy /MIR c:\test D:\UserData\FolderToDelete > NUL

    • eliminar la carpeta testy FolderToDeleteya que ambos están vacíos

¿Por qué este es un problema en Windows?

Una de las estructuras de carpetas anidadas profundas es node_modules, Windows no puede eliminar la carpeta ya que su nombre es demasiado largo . Para resolver esto, solución fácil, instale un módulo de nodo RimRaf


Error: EPERM: operation not permitted
Travis Heeter

1
Solucionado: tuve que reiniciar mi computadora. Algo estaba usando node_modules, pero me estaba dando un error de permiso.
Travis Heeter

8

Prueba el código de Visual Studio

Después de probar muchas soluciones, encuentro que esta es bastante simple. simplemente abra el proyecto en código Visual y elimínelo. la interfaz de usuario puede congelarse durante algunos segundos, pero definitivamente funcionará. Pruebo con muchas carpetas de gran tamaño node_modules con ella

ingrese la descripción de la imagen aquí

Gracias


Extrañamente funciona !! :) He estado tratando de eliminarlo incluso en modo a prueba de errores, incluso lo usé sudo supero nada ayuda. Por cierto, estoy ejecutando en OSX que nunca me sucedió hasta que actualicé a Mojave.
forloop

6

Puede usar Git Bash para eliminar la carpeta:

ejemplo: c: \ users \ stu \ projects \ mynodeproject

rm / c / users / stu / projects / mynodeproject -rfd


5

Tuve un problema similar y RD no funcionó, por alguna razón desconocida.

Sin embargo, NPM puede deshacerse de su propio desorden, por lo que si lo hace npm uninstall [module-name]para cada directorio en node_modules, lo eliminará.

(Buscaré más adelante cómo realizar un bucle por lotes para aquellos que tienen muchas dependencias).



4

simplemente ejecute para Windows No lo he probado para otros sistemas operativos

rm -r node_modules

de hecho, puedes eliminar cualquier carpeta con esto.

como rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

simplemente abra el movimiento gitbash a la raíz de la carpeta y ejecute este comando

Espero que esto ayude.

Gracias Ajay Kotnala.


2

En Windows, con Total Commander, todo lo que tiene que hacer es seleccionar la carpeta y hacer clic en shift+ delete. No te olvides de la shiftllave.


¡Esta es la mejor solución! TC elimina la carpeta sin contratiempos y es realmente rápido
Marina Dunst

2

Cualquier administrador de archivos permite evitar tales problemas, por ejemplo, Far Manager

ingrese la descripción de la imagen aquí


2
No había visto a nadie usando esa interfaz durante más de 10 años ... J me alegró el día.
Rikki el

2

Acabo de hacer del node_modules dentro de mi carpeta de proyecto en PowerShell, le preguntará si desea eliminarlo y su carpeta secundaria, simplemente presione 'Y' y listo


Una simple Gracias
Estin soleado

... \ node_modules tiene elementos secundarios y no se especificó el parámetro Recurse. Si continúa, todos los niños serán eliminados con el artículo. Estás seguro de que quieres continuar? [Y] Sí [A] Sí a todos [N] No [L] No a todos [S] Suspender [?] Ayuda (el valor predeterminado es "Y"): Y rd: Directorio C: \ ... \ node_modules \ ngx -color-picker \ dist no se puede eliminar porque no está vacío. rd node_modules -recurse
AUSTX_RJL

1
rd node_modules -recurse
AUSTX_RJL

@AUSTX_RJL rd también funciona, pero nunca tuve un problema con del node_modules ... cableado, pero tnx de cualquier manera para otra forma de eliminar en PS
Roy.B

2

Intenté todo pero no funcionó. Todos los métodos anteriores no hicieron nada. Por fin pude eliminar a través de VSCode.

  1. Simplemente abra su carpeta raíz con VSCode.
  2. Seleccione node_modulescarpeta y elimine.
  3. Lucro. (Tardará few millisecondsen eliminar).

VSCode-delete.png


2

Hice un elemento de contexto de Windows para eliminar rápidamente node_modules u otras carpetas. Lo uso cuando Windows no elimina una carpeta debido a algunos caracteres no válidos en la ruta del directorio.

¿CÓMO INSTALAR?

  1. Instalar rimraf =>npm install rimraf -g

  2. Cree un nuevo archivo llamado delete.bat, configure el contenido como se muestra a continuación y cópielo enc:\windows\system32\

    delete.bat:

 @ECHO OFF
 ECHO.
 ECHO %CD% 
 ECHO.
 ECHO Are you sure to delete the folder with Rimraf?
 PAUSE
 SET FOLDER=%CD%
 CD /

 rimraf "%FOLDER%"

 rem DEL /F/Q/S "%FOLDER%" > NUL
 rem RMDIR /Q/S "%FOLDER%"

 EXIT
  1. Ejecute el archivo fast-delete.reg para importar al registro.

    ¡Hecho!

resultado final


1

Una solución que uso:

(Preferiría evitar instalar una nueva extensión (rimraf) cuando trabaje con entornos de CI).

  1. A) Cambie el nombre de los paquetes.json a otra cosa. B) Especialmente en CI: después de la instalación de npm, generalmente elimino el archivo en lugar de renombrarlo, pero si lo necesita, no tiene que hacer esto. Esa es tu elección.
  2. ejecutar npm init: esto creará un packages.jsonarchivo vacío (sin dependencias)
  3. ejecutar npm prune: esto coincidirá con node_modules con la sección de dependencias de packages.json- que ahora está vacía como resultado del paso # 2.
  4. Si ha elegido # 1.A. paso, elimine el recién creado packages.jsony cambie el nombre del original packages.jsona su nombre original.

1

Es demasiado fácil.

Simplemente elimine todas las carpetas dentro de node_modules y luego elimine la carpeta node_module real.

Esto funciona para mi. La mejor de las suertes....


Honestamente, esta es la forma más rápida, pero se requiere mucha paciencia. Aún mejor si elimina algunas carpetas a la vez.
Santosh

1

En Windows, mi solución ir está usando el rmdircomando :

rd /S .\node_modules\

Si falla la primera vez, intente una vez más. También verifique si tiene scripts en ejecución actualmente utilizando los módulos ( npm run serveo similar).


0

A partir de este aspecto de este artículo de MSDN , parece que ahora puede omitir la restricción MAX_PATH en Windows 10 v1607 (también conocida como 'actualización de aniversario') cambiando un valor en el registro, o mediante la Política de grupo


0

Solo usa powershell ..

Ejecute powershell y cd en la carpeta principal y luego:

rm [yourfolder]

como en:

rm node_modules

0

Estoy en Windows 10 y no pude eliminar las carpetas con el mensaje "directorio no vacío". Ni rimraf ni rm -rf funcionaron.

Copiar un archivo de texto vacío en cada carpeta hizo el truco: pude eliminar la carpeta completa node_modules.


0

A veces, incluso si instala rimrafglobalmente, puede tener una rimrafdependencia local (SASS generalmente la tiene). En este caso, ejecutaría los siguientes comandos:

Siga los primeros 2 pasos según lo recomendado por usagidon , si tiene problemas o errores intente

npm uninstall rimraf & rimraf node_modules

esto eliminará local rimrafy usará el global


0

No está exactamente relacionado, pero como esta es la primera publicación que encontré en mi búsqueda de una solución similar, creo que vale la pena publicarla aquí.

Me encontraba con problemas de permisos en Windows 10 al intentar eliminar mi carpeta node_modules después de un intento fallido de instalar electron-redux. Parece que electron-redux agregó @types a mis node_modules, que tenían configurados permisos incorrectos.

Rimraf no funcionó, ya que todavía se encontró con problemas de permisos.

Terminé renombrando node_modules y luego funcionó una simple eliminación.


0

Bien, entonces mi problema era que tenía una carpeta .bin dentro de node_modules y no podía eliminar eso, probé todas las soluciones anteriores para lo mismo pero nada funcionó.

El error que se repetía era "no tiene permiso para eliminar la carpeta o ha sido utilizada por algún otro programa".

Solución que encontré "Tenía un antivirus instalado en mi PC, que sin saberlo estaba usando los archivos de la carpeta node_modules".

Desinstalé el antivirus o puede cambiar la configuración de permisos desde la opción de configuración del antivirus (depende de qué antivirus tenga). Ahora puedo eliminar la carpeta node_modules.


0

Lo que funcionó para mí fue:

  1. cerró la consola del administrador de nodos
  2. cerró el entorno de desarrollo Atom (código de estudio visual) en el que se encuentra.
  3. luego elimine los node_modules

    npm install rimraf -g 
    rimraf node_modules

0

La forma de PowerShell:

PS > rm -r -force node_modules

# The same, but without using aliases
PS > Remove-Item -Recurse -Force node_modules

Y si desea eliminar todos los node_modulessubdirectorios:

Nota Potencialmente peligroso ya que se elimina de forma recursiva, asegúrese de lo que está haciendo aquí

PS > dir -Path . -Filter node_modules -recurse | foreach {echo $_.fullname; rm -r -Force $_.fullname}

0

Puede usar otro paquete npm específicamente para este propósito. Al instalarlo localmente en la carpeta usando

npm i rm-node-modules-recur

Si lo desea, también puede instalarlo globalmente con el interruptor -g.

Si se instala localmente, puede invocar el binario desde el directorio actual node_modules.bin \ using

 .\node_modules\.bin\rmnodes "<top level directory within quotes>"

Si elige la instalación global, simplemente use

rmnodes "<top level directory within quotes>"

y eso es todo ... este paquete terminará eliminando node_modules de todos los subdirectorios de forma recursiva (en mi caso, unas 60 carpetas impares) con facilidad. consulte la instantánea adjunta. utilizando rm-node-modules-recur


-1

Avance un poco para varias carpetas ...

Si tiene una carpeta de proyecto con múltiples 'compilaciones' que contiene 'node_module'. Me gusta:

C:/Project/build-1/node_modules
C:/Project/build-2/node_modules
C:/Project/build-3/node_modules
C:/Project/build-4/node_modules

Desea eliminar todas las carpetas comienza con "compilar"

! Primero instale nodejs y rimraf como se sugirió anteriormente.

Luego vaya a la ruta con el proyecto y ejecute el comando PowerShell

cd  C:/Project/
Get-ChildItem build* | foreach {rimraf -Path $_.FullName}

Tomará un tiempo


-1

Puede hacer un lote simple basado en la respuesta @ mike-caron, por lo que no necesita escribir cada vez un robocopycomando completo, solo ingrese la ruta a la carpeta seleccionada:

@echo off
ECHO What Directory would you like to empty?
ECHO Current path: %cd%
SET /p UserInputPath=Input relative path to directory:
ROBOCOPY /MIR empty_dir %cd%\%UserInputPath% > NUL
PAUSE

Aquí está usando un directorio vacío llamado empty_dir en el robocopycomando que necesita estar en el mismo directorio con el archivo por lotes para que esto funcione. Después de que el archivo por lotes finalice su trabajo, tanto el directorio seleccionado como el directorio vacío estarán vacíos para que pueda eliminarlos.

Hice un archivo por lotes simple que crea una carpeta vacía y, después de robocopyejecutar el comando, elimina la carpeta vacía y la carpeta seleccionada, de modo que lo único que debe hacer es ingresar la ruta a la carpeta seleccionada que desea eliminar. Es rápido y práctico si no desea instalar cosas como rimraf . Puede descargarlo aquí https://github.com/5imun/WinCleaner


Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. - De la opinión
SherylHohman
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.