Utilidades npm: rimraf, alternativa al comando Unix rm -rf 

Foto de Denny Müller en Unsplash

Una de las acciones que solemos hacer más de lo habitual es el borrado de archivos o carpetas para dejar siempre nuestro entorno de trabajo lo más limpio y/o estable que podamos. Mientras desarrollamos muchas veces instalamos un paquete u otro, creamos archivos para probar, etc. haciendo que el entorno se convierta en un infierno de archivos inútiles.

Cuando esto sucede podemos aplicar varias soluciones:

Si alguna vez has querido borrar la carpeta «node_modules» en Windows, habrás notado que … bueno, puedes ir a tomarte un descanso, puesto que lo revisa, evalúa, mira el total de archivos, cuánto pesa… y dependiendo de la cantidad de paquqetes instalados puede que tarde mucho, incluso dar algún error de permisos.

Para esto (y borrar más cosas) te recomiendo usar el paquete npm rimraf. Solo tienes que instalarlo de la siguiente manera:

npm install -g rimraf

Sí, si, como ves lo instalamos a nivel global para que sea accesible desde tu consola en cualquier lado. Si tu proyecto necesita hacer un borrado en algún proceso técnico o de negocio, entonces también instalarlo a nivel de tu proyecto (añadiéndose al package.json).

Una vez instalado, solo queda usarlo con este simple comando (ejemplo para borrar la carpeta «node_modules»):

rimraf node_modules

Si no quieres instalarlo de forma global tienes la alternativa npx:

npx -y rimraf node_modules

¡Quiero borrar más!

¿Piensas que no es suficiente con «node_modules»? Bueno, ya depende de tu proyecto, así que según la versión de angular y nx que estés usando podemos seguir borrando más:

rimraf .angular
rimraf .nx

Y así podemos seguir con las carpetas temporales, de caché, de resultados de tests, de distribución…

rimraf dist
rimraf test_results

Resetear el entorno

De todo esto podemos crear un script en el «package.json» para limpiar tu entorno (aquí añades o quitas las carpetas que genera tu proyecto):

"scripts": {
  "clean": "npx -y rimraf node_modules .angular .nx dist test_results"
}

Y ya para rizar el rizo si usas git, añadimos un comando para eliminar todo lo que no pertenece a tu repositorio con git clean (antes comprueba si te van bien las opciones fdx):

git clean -fdx

Ya ves que puede quedar el script algo parecido a esto:

"scripts": {
  "clean": "npx -y rimraf node_modules .angular .nx dist test_results",
  "clean:all": "npm run clean && git clean -fdx"
}

Nota: git clean por sí solo elimina lo que está borrando rimraf (lo que no pertenezca al proyecto git), pero quizás por rendimiento/tiempo se necesite mezclar ambos comandos.

Entradas relacionadas

El patrón Command en Angular con cola de ejecución

por César Marín
4 años atrás

¿Cómo migrar de AngularJS a Angular?

por César Marín
5 años atrás

Asegura la calidad de los commits en Nx

por César Marín
3 semanas atrás
Salir de la versión móvil