Tengo varios proyectos npm guardados en un directorio local. Ahora quiero hacer una copia de seguridad de mis proyectos sin la node_modules
carpeta, 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.
-prune
es una optimización importante. En caso de que find no recurra a losnode_module
directorios (para buscar node_modules anidados)/node_modules/gulp-server-livereload/node_modules: Directory not empty
muchas carpetas de node_modules "internas". ¿Cómo solucionar esto?'{}' +
?{}
es un marcador de posición quefind
reemplaza con la ruta del archivo que encontró.+
dicefind
que agregue todas las rutas de archivo a un solo comando en lugar de ejecutarrm
para 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-print
para ver cómo se elimina el directorio.Nota: Primero debe
cd
ingresar 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,
find
y 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
bash
función para eliminarnode_modules
. Eliminará todos losnode_modules
directorios de forma recursiva del directorio de trabajo actual, mientras imprime las rutas encontradas.Solo necesita poner en algún lugar de su
$PATH
rmnodemodules(){ 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