Utilidades npm: rimraf, alternativa al comando Unix rm -rf
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:
- Borrar las carpetas/archivos que ya no son útiles
- Resetear del entorno (o volver a empezar de nuevo)
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.