Tengo varios proyectos npm guardados en un directorio local. Ahora quiero hacer una copia de seguridad de mis proyectos sin la node_modulescarpeta, ya que ocupa mucho espacio y también se puede recuperar en cualquier momento usando npm install.
Entonces, necesito una solución para eliminar todas las carpetas node_modules de forma recursiva desde una ruta específica usando la interfaz de línea de comando. Cualquier sugerencia / ayuda es muy apreciada.

-prunees una optimización importante. En caso de que find no recurra a losnode_moduledirectorios (para buscar node_modules anidados)/node_modules/gulp-server-livereload/node_modules: Directory not emptymuchas carpetas de node_modules "internas". ¿Cómo solucionar esto?'{}' +?{}es un marcador de posición quefindreemplaza con la ruta del archivo que encontró.+dicefindque agregue todas las rutas de archivo a un solo comando en lugar de ejecutarrmpara cada uno.Mejorando la respuesta aceptada,
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +Descubrí que el comando se ejecutaría durante mucho tiempo para recuperar todas las carpetas y luego ejecutar un comando de eliminación, para que el comando sea reanudable, sugiero usar
\;y ver el progreso del comando que se está ejecutando-printpara ver cómo se elimina el directorio.Nota: Primero debe
cdingresar al directorio raíz y luego ejecutar el comando o en lugar defind .usarfind {project_directory}Para eliminar carpetas una por una
find . -name 'node_modules' -type d -prune -exec rm -rf '{}' \;Para eliminar carpetas una por una e imprimir la carpeta que se está eliminando
find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;Editar:
Para las personas a las que les gusta la forma interactiva de hacer esto, consulte la respuesta de @jeckep, ejecute esto en el directorio que desea eliminar.
fuente
Prueba https://github.com/voidcosmos/npkill
encontrará todos los node_modules y le permitirá eliminarlos.
fuente
Me he encontrado con esta solución,
findy especifique el nombre de la carpeta.-exec rm -rf '{}' +ejecute el siguiente comando para eliminar carpetas de forma recursiva
find /path -type d -name "node_modules" -exec rm -rf '{}' +fuente
bashfunción para eliminarnode_modules. Eliminará todos losnode_modulesdirectorios de forma recursiva del directorio de trabajo actual, mientras imprime las rutas encontradas.Solo necesita poner en algún lugar de su
$PATHrmnodemodules(){ find . -name 'node_modules' -type d -prune -exec echo '{}' \; -exec rm -rf {} \; }fuente
Esto funciona muy bien
find . -name "node_modules" -exec rm -rf '{}' +fuente