Skip to content

Latest commit

 

History

History
253 lines (171 loc) · 11.6 KB

File metadata and controls

253 lines (171 loc) · 11.6 KB

devkill logo

npm Donations Badge npm version NPM

Encuentra y destruye directorios de construcción y caché viejos y pesados en múltiples lenguajes ✨

devkill demo GIF

Esta herramienta te permite listar cualquier directorio node_modules, entornos virtuales de Python, artefactos de construcción y mucho más que haya en tu sistema, además del espacio que ocupa. Entonces puedes seleccionar los que quieras borrar para liberar espacio. ¡Yay!

i18n

Nos estamos esforzando por internacionalizar la documentación de Devkill. Aquí tienes una lista de las traducciones disponibles:

Table of Contents

✔️ Características

  • Limpieza multi-lenguaje: Perfiles para Node.js, Python, Rust, Java, C++, Unity y más, cada uno con listas de directorios seguros para eliminar.

  • Libera espacio: Elimina tus directorios viejos y polvorientos que le roban espacio a tu máquina.

  • Último uso del Workspace: Comprueba cuándo ha sido la última vez que has modificado un fichero en el workspace (indicado en la columna last_mod).

  • Rapidez: Devkill está escrito en TypeScript, pero las búsquedas se llevan a cabo a bajo nivel, lo que supone una mejora considerable del rendimiento.

  • Fácil de utilizar: Despídete de comandos largos y difíciles. Utilizar Devkill es tan sencillo como elegir un perfil, leer la lista de directorios, y pulsar la tecla Del para eliminarlos. ¿Podría ser más fácil? ;)

  • Minificado: Apenas tiene dependencias.

☁️ Instalación

¡Lo mejor es que no tienes que instalar Devkill para utilizarlo! Simplemente utiliza el siguiente comando:

$ npx devkill

O, si por alguna razón te apetece instalarlo:

$ npm i -g devkill
# Los usuarios de Unix quizá tengan que ejecutar el comando con sudo. Ve con cuidado

Devkill requiere node>=18.18.0.

📋 Uso

$ npx devkill
# o solo devkill si está instalado de forma global

Por defecto, Devkill comenzará la búsqueda comenzando en la ruta donde se ejecute el comando devkill.

Muévete por los distintos directorios listados con , y utiliza Space para borrar el directorio seleccionado.

También puedes usar j y k para moverte por los resultados.

Puedes abrir el directorio donde se aloja el resultado seleccionado pulsando o.

Para salir de Devkill, utiliza Q, o si te sientes valiente, Ctrl + c.

¡Importante! Algunas aplicaciones que están instaladas en el sistema necesitan sus directorios para funcionar, y borrarlo puede romperlas. Devkill te mostrará un ⚠️ para que sepas que tienes que tener cuidado.

Opciones

ARGUMENTO DESCRIPCIÓN
-p, --profiles Permite seleccionar el perfil (conjunto de objetivos) a usar. Por defecto: node.
--config Ruta a un fichero de configuración .devkillrc personalizado.
-d, --directory Permite seleccionar el directorio desde el que comienza la búsqueda. Por defecto, se empieza en .
-D, --delete-all Borra automáticamente todos los directorios que se encuentren. Recomendable utilizar junto a -x
-e, --hide-errors Esconde los errores en el caso de que ocurra alguno
-E, --exclude Excluye directorios de la búsqueda (la lista de directorios debe estar entre comillas dobles "", cada directorio separado por ',' Ejemplo: "ignore1, ignore2")
-f, --full Comienza la búsqueda en el home del usuario (ejemplo: "/home/user" en Linux)
--size-unit Unidad para mostrar el tamaño de las carpetas. (Disponible: auto, mb, gb)
-h, --help, ? Muestra esta página de ayuda y finaliza
-nu, --no-check-update No comprobar si hay actualizaciones al iniciar la aplicación
-s, --sort Ordena los resultados por: size, path o age
-t, --targets Desactiva los perfiles y especifica los nombres de directorio a buscar. Separa con coma. Ej. -t node_modules,.cache.
-x, --exclude-sensitive Excluye directorios sensibles.
-y Evita mostrar advertencia al ejecutar --delete-all.
--dry-run No borra nada (simula un tiempo de borrado aleatorio)
--json Muestra los resultados en formato JSON al final del escaneo.
--json-stream Muestra los resultados en formato JSON en streaming (un objeto por línea).
-v, --version Muestra la versión de Devkill

Ejemplo

  • Busca y encuentra los directorios node_modules en un directorio projects :
devkill -d ~/projects

# otra alternativa:
cd ~/projects
devkill
  • Escanea Node.js y Python en tus proyectos:
devkill -d ~/projects --profiles node,python
  • Lista los node_modules en el directorio projects, excluyendo los que están en los directorios progress e ignore-this:
devkill -d 'projects' --exclude "progress, ignore-this"
  • Borra automáticamente todos los node_modules que se encuentren en el directorio backups:
devkill -d ~/backups/ --delete-all

📟 Configuración local

# -- Primero, clona el repositorio
git clone https://github.com/zaldih/npkill.git

# -- Navega al dir
cd npkill

# -- Instala las dependencias
npm install

# -- ¡Y ejecuta!
npm run start


# -- Si quieres ejecutar con algún parámetro, hay que añadir "--", tal y como se muestra a continuación:
npm run start -- -f -e

🔮 Roadmap

  • Lanzar la versión 0.1.0 !
  • Mejorar el código
    • Mejorar el rendimiento
    • ¡Mejorar el rendimiento aún más!
  • Ordenar los resultados por tamaño y ruta
  • Permitir la búsqueda de otro tipo de directorios (targets)
  • Perfiles multi-lenguaje (node, python, rust, java, etc.)
  • Selector de perfiles interactivo al inicio
  • Reducir las dependencies para ser un módulo más minimalista
  • Permitir el filtrado por directorios que no se hayan utilizado en un periodo de tiempo determinado
  • Crear una opción para mostrar los directorios en formato árbol
  • Añadir menús
  • Añadir un servicio de logs
  • Limpieza periódica y automática (?)

🐛 Bugs conocidos 🐛

  • A veces, el CLI se bloquea mientras un directorio se está borrando.
  • La ordenación, especialmente por rutas, puede ralentizar la terminal cuando haya muchos resultados al mismo tiempo.
  • A veces, los cálculos de tamaño son mayores de lo que deberían ser.
  • (RESUELTO) Problemas de rendimiento al hacer la búsqueda desde directorios de alto nivel (como / en Linux).
  • (RESUELTO) A veces el texto se colapsa al actualizar el CLI.
  • (RESUELTO) Analizar el tamaño de los directorios tarda más de lo que debería.

Si encuentras algún bug, no dudes en abrir un issue :)

💞 Cómo contribuir

Si quieres contribuir, échale un vistazo al CONTRIBUTING.md

☕ Invítanos a un café

Hemos desarrollado Devkill en nuestro tiempo libre, porque nos apasiona la programación.

El día de mañana nos gustaría dedicarnos al open source completamente, pero antes, nos queda un largo camino por recorrer.

Seguiremos contribuyendo al open source por y para siempre, pero las donaciones son una de las muchas formas de apoyarnos.

¡Invítanos a un café! (O a un té para Nya, la única programadora a la que no le gusta el café).

Botón de donar con Open Collective

¡¡Mil gracias!!

Muchísimas gracias a todos los que nos han apoyado ❤️


Alternativa cripto

  • btc: 1ML2DihUoFTqhoQnrWy4WLxKbVYkUXpMAX
  • bch: 1HVpaicQL5jWKkbChgPf6cvkH8nyktVnVk
  • eth: 0x7668e86c8bdb52034606db5aa0d2d4d73a0d4259

📜 Licencia

MIT © Nya García Gallardo y Juan Torres Gómez

🐱🐤