{"id":13448590,"url":"https://github.com/voidcosmos/npkill","last_synced_at":"2025-05-14T02:00:27.640Z","repository":{"id":37736084,"uuid":"194513266","full_name":"voidcosmos/npkill","owner":"voidcosmos","description":"List any node_modules 📦 dir in your system and how heavy they are. You can then select which ones you want to erase to free up space 🧹","archived":false,"fork":false,"pushed_at":"2024-08-22T22:42:56.000Z","size":8572,"stargazers_count":8611,"open_issues_count":24,"forks_count":200,"subscribers_count":40,"default_branch":"main","last_synced_at":"2025-05-11T10:51:05.616Z","etag":null,"topics":["cli","command-line","developer-tools","hacktoberfest","javascript","module","node","nodejs","npm","tool","typescript"],"latest_commit_sha":null,"homepage":"https://npkill.js.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voidcosmos.png","metadata":{"files":{"readme":"README.es.md","changelog":null,"contributing":".github/CONTRIBUTING.es.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.es.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"open_collective":"npkill","custom":["ethereum/0x7668e86c8bdb52034606db5aa0d2d4d73a0d4259"]}},"created_at":"2019-06-30T12:26:26.000Z","updated_at":"2025-05-11T07:39:44.000Z","dependencies_parsed_at":"2023-10-05T03:56:26.856Z","dependency_job_id":"c511f7f1-fbec-4a16-82aa-3291c5d3cbc3","html_url":"https://github.com/voidcosmos/npkill","commit_stats":{"total_commits":531,"total_committers":30,"mean_commits":17.7,"dds":0.6214689265536724,"last_synced_commit":"fdb006e88c0a93829f95161b3941e74ec1928419"},"previous_names":["zaldih/npkill"],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidcosmos%2Fnpkill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidcosmos%2Fnpkill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidcosmos%2Fnpkill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voidcosmos%2Fnpkill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voidcosmos","download_url":"https://codeload.github.com/voidcosmos/npkill/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253852919,"owners_count":21974031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","command-line","developer-tools","hacktoberfest","javascript","module","node","nodejs","npm","tool","typescript"],"created_at":"2024-07-31T05:01:49.813Z","updated_at":"2025-05-14T02:00:27.572Z","avatar_url":"https://github.com/voidcosmos.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://npkill.js.org/img/npkill-text-outlined.svg\" width=\"320\" alt=\"npkill logo\" /\u003e\n  \u003cimg src=\"https://npkill.js.org/img/npkill-scope-mono.svg\" width=\"50\" alt=\"npkill logo scope\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/dy/npkill.svg\"\u003e\n\u003ca href=\"#donations\"\u003e\u003cimg src=\"https://img.shields.io/badge/donate-\u003c3-red\" alt=\"Donations Badge\"/\u003e\u003c/a\u003e\n\u003cimg alt=\"npm version\" src=\"https://img.shields.io/npm/v/npkill.svg\"\u003e\n\u003cimg alt=\"NPM\" src=\"https://img.shields.io/npm/l/npkill.svg\"\u003e\n\u003c/p\u003e\n\n### Encuentra y **destruye** directorios \u003cfont color=\"red\"\u003e**node_modules**\u003c/font\u003e viejos y pesados :sparkles:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/docs/npkill-demo-0.10.0.gif\" alt=\"npkill demo GIF\" /\u003e\n\u003c/p\u003e\n\nEsta herramienta te permite listar cualquier directorio _node_modules_ que haya en tu sistema, además del espacio que ocupa. Entonces puedes seleccionar los que quieras borrar para liberar espacio. ¡Yay!\n\n## Table of Contents\n\n- [Características](#features)\n- [Instalación](#installation)\n- [Uso](#usage)\n  - [Opciones](#options)\n  - [Ejemplos](#examples)\n- [Configuración local](#setup-locally)\n- [Roadmap](#roadmap)\n- [Bugs conocidos](#known-bugs)\n- [Cómo contribuir](#contributing)\n- [Invítanos a un café](#donations)\n- [Licencia](#license)\n\n\u003ca name=\"features\"\u003e\u003c/a\u003e\n\n# :heavy_check_mark: Características\n\n- **Libera espacio:** Elimina tus directorios _node_modules_ viejos y polvorientos que le roban espacio a tu máquina.\n\n- **Ú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**).\n\n- **Rapidez:** NPKILL está escrito en TypeScript, pero las búsquedas se llevan a cabo a bajo nivel, lo que supone una mejora considerable del rendimiento.\n\n- **Fácil de utilizar:** Despídete de comandos largos y difíciles. Utilizar Npkill es tan sencillo como leer la lista de tus node_modules, y pulsar la tecla Del para eliminarlos. ¿Podría ser más fácil? ;)\n\n- **Minificado:** Apenas tiene dependencias.\n\n\u003ca name=\"installation\"\u003e\u003c/a\u003e\n\n# :cloud: Instalación\n\n¡Lo mejor es que no tienes que instalar Npkill para utilizarlo!\nSimplemente utiliza el siguiente comando:\n\n```bash\n$ npx npkill\n```\n\nO, si por alguna razón te apetece instalarlo:\n\n```bash\n$ npm i -g npkill\n# Los usuarios de Unix quizá tengan que ejecutar el comando con sudo. Ve con cuidado\n```\n\n\u003e NPKILL no tiene soporte para node\u003cv14. Si esto te afecta puedes utilizar `npkill@0.8.3`\n\n\u003ca name=\"usage\"\u003e\u003c/a\u003e\n\n# :clipboard: Uso\n\n```bash\n$ npx npkill\n# o solo npkill si está instalado de forma global\n```\n\nPor defecto, Npkill comenzará la búsqueda de node_modules comenzando en la ruta donde se ejecute el comando `npkill`.\n\nMuévete por los distintos directorios listados con \u003ckbd\u003e↓\u003c/kbd\u003e \u003ckbd\u003e↑\u003c/kbd\u003e, y utiliza \u003ckbd\u003eSpace\u003c/kbd\u003e para borrar el directorio seleccionado.\n\nTambién puedes usar \u003ckbd\u003ej\u003c/kbd\u003e y \u003ckbd\u003ek\u003c/kbd\u003e para moverte por los resultados.\n\nPuedes abrir el directorio donde se aloja el resultado seleccionado pulsando \u003ckbd\u003eo\u003c/kbd\u003e.\n\nPara salir de Npkill, utiliza \u003ckbd\u003eQ\u003c/kbd\u003e, o si te sientes valiente, \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003ec\u003c/kbd\u003e.\n\n**¡Importante!** Algunas aplicaciones que están instaladas en el sistema necesitan su directorio node_modules para funcionar, y borrarlo puede romperlas. NPKILL te mostrará un :warning: para que sepas que tienes que tener cuidado.\n\n\u003ca name=\"options\"\u003e\u003c/a\u003e\n\n## Opciones\n\n| ARGUMENTO                        | DESCRIPCIÓN                                                                                                                                                    |\n| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| -c, --bg-color                   | Cambia el color de selección de la fila. _(Colores disponibles: **azul**, cyan, magenta, blanco, rojo y amarillo)_                                             |\n| -d, --directory                  | Permite seleccionar el directorio desde el que comienza la búsqueda. Por defecto, se empieza en .                                                              |\n| -D, --delete-all                 | Borra automáticamente todos los node_modules que se encuentren. Recomendable utilizar junto a `-x`                                                             |\n| -e, --hide-errors                | Esconde los errores en el caso de que ocurra alguno                                                                                                            |\n| -E, --exclude                    | Excluye directorios de la búsqueda (la lista de directorios debe estar entre comillas dobles \"\", cada directorio separado por ',' Ejemplo: \"ignore1, ignore2\") |\n| -f, --full                       | Comienza la búsqueda en el home del usuario (ejemplo: \"/home/user\" en Linux)                                                                                   |\n| -gb                              | Muestra el tamaño en Gigabytes en lugar de en Megabytes.                                                                                                       |\n| -h, --help, ?                    | Muestra esta página de ayuda y finaliza                                                                                                                        |\n| -nu, --no-check-update           | No comprobar si hay actualizaciones al iniciar la aplicación                                                                                                   |\n| -s, --sort                       | Ordena los resultados por: `size`, `path` or `last-mod`                                                                                                        |\n| -t, --target                     | Especifica el nombre del directorio que se buscará (por defecto es node_modules)                                                                               |\n| -x, --exclude-hidden-directories | Excluye directorios ocultos (directorios \"dot\") de la búsqueda                                                                                                 |\n| --dry-run                        | No borra nada (simula un tiempo de borrado aleatorio)                                                                                                          |\n| -v, --version                    | Muestra la versión de Npkill                                                                                                                                   |\n\n**Precaución:** _Algunos comandos pueden cambiar en versiones futuras_\n\n\u003ca name=\"examples\"\u003e\u003c/a\u003e\n\n## Ejemplo\n\n- Busca y encuentra los directorios **node_modules** en un directorio _projects_ :\n\n```bash\nnpkill -d ~/projects\n\n# otra alternativa:\ncd ~/projects\nnpkill\n```\n\n- Lista los directorios llamados \"dist\" y muestra los errores que ocurran:\n\n```bash\nnpkill --target dist -e\n```\n\n- Muestra el cursor de color magenta... ¡Porque me gusta el magenta!\n\n```bash\nnpkill --color magenta\n```\n\n- Lista los directorios **vendor** en un directorio _projects_, ordenados por tamaño y mostrando el tamaño en gb:\n\n```bash\nnpkill -d '~/more projects' -gb --sort size --target vendor\n```\n\n- Lista los **node_modules** en el directorio _projects_, excluyendo los que están en los directorios _progress_ e _ignore-this_:\n\n```bash\nnpkill -d 'projects' --exclude \"progress, ignore-this\"\n```\n\n- Borra automáticamente todos los **node_modules** que se encuentren en el directorio _backups_:\n\n```bash\nnpkill -d ~/backups/ --delete-all\n```\n\n\u003ca name=\"setup-locally\"\u003e\u003c/a\u003e\n\n# :pager: Configuración local\n\n```bash\n# -- Primero, clona el repositorio\ngit clone https://github.com/voidcosmos/npkill.git\n\n# -- Navega al dir\ncd npkill\n\n# -- Instala las dependencias\nnpm install\n\n# -- ¡Y ejecuta!\nnpm run start\n\n\n# -- Si quieres ejecutar con algún parámetro, hay que añadir \"--\", tal y como se muestra a continuación:\nnpm run start -- -f -e\n```\n\n\u003ca name=\"roadmap\"\u003e\u003c/a\u003e\n\n# :crystal_ball: Roadmap\n\n- [x] Lanzar la versión 0.1.0 !\n- [x] Mejorar el código\n  - [x] Mejorar el rendimiento\n  - [ ] ¡Mejorar el rendimiento aún más!\n- [x] Ordenar los resultados por tamaño y ruta\n- [x] Permitir la búsqueda de otro tipo de directorios (targets)\n- [ ] Reducir las dependencies para ser un módulo más minimalista\n- [ ] Permitir el filtrado por directorios que no se hayan utilizado en un periodo de tiempo determinado\n- [ ] Crear una opción para mostrar los directorios en formato árbol\n- [x] Añadir menús\n- [x] Añadir un servicio de logs\n- [ ] Limpieza periódica y automática (?)\n\n\u003ca name=\"known-bugs\"\u003e\u003c/a\u003e\n\n# :bug: Bugs conocidos :bug:\n\n- A veces, el CLI se bloquea mientras un directorio se está borrando.\n- Algunas terminales que no utilizan TTY (como git bash en Windows) no funcionan.\n- La ordenación, especialmente por rutas, puede ralentizar la terminal cuando haya muchos resultados al mismo tiempo.\n- A veces, los cálculos de tamaño son mayores de lo que deberían ser.\n- (RESUELTO) Problemas de rendimiento al hacer la búsqueda desde directorios de alto nivel (como / en Linux).\n- (RESUELTO) A veces el texto se colapsa al actualizar el CLI.\n- (RESUELTO) Analizar el tamaño de los directorios tarda más de lo que debería.\n\n\u003e Si encuentras algún bug, no dudes en abrir un issue :)\n\n\u003ca name=\"contributing\"\u003e\u003c/a\u003e\n\n# :revolving_hearts: Cómo contribuir\n\nSi quieres contribuir, échale un vistazo al [CONTRIBUTING.md](.github/CONTRIBUTING.es.md)\n\n\u003ca name=\"donations\"\u003e\u003c/a\u003e\n\n# :coffee: Invítanos a un café\n\n\u003cimg align=\"right\" width=\"300\" src=\"https://npkill.js.org/img/cat-donation-cup.png\"\u003e\nHemos desarrollado Npkill en nuestro tiempo libre, porque nos apasiona la programación.\n\nEl día de mañana nos gustaría dedicarnos al open source completamente, pero antes, nos queda un largo camino por recorrer.\n\nSeguiremos contribuyendo al open source por y para siempre, pero las donaciones son una de las muchas formas de apoyarnos.\n\n¡Invítanos a un café! (O a un té para Nya, la única programadora a la que no le gusta el café).\n\n\u003cspan class=\"badge-opencollective\"\u003e\u003ca href=\"https://opencollective.com/npkill/contribute\" title=\"Dona a este proyecto utilizando Open Collective\"\u003e\u003cimg src=\"https://img.shields.io/badge/open%20collective-donate-green.svg\" alt=\"Botón de donar con Open Collective\" /\u003e\u003c/a\u003e\u003c/span\u003e\n\n### ¡¡Mil gracias!!\n\n## Muchísimas gracias a todos los que nos han apoyado :heart:\n\n\u003ca href=\"https://opencollective.com/npkill#backers\" target=\"_blank\"\u003e\u003cimg width=\"535\" src=\"https://opencollective.com/npkill/tiers/backer.svg?width=535\"\u003e\u003c/a\u003e\n\n---\n\n### Alternativa cripto\n\n- btc: 1ML2DihUoFTqhoQnrWy4WLxKbVYkUXpMAX\n- bch: 1HVpaicQL5jWKkbChgPf6cvkH8nyktVnVk\n- eth: 0x7668e86c8bdb52034606db5aa0d2d4d73a0d4259\n\n\u003ca name=\"license\"\u003e\u003c/a\u003e\n\n# :scroll: Licencia\n\nMIT © [Nya García Gallardo](https://github.com/NyaGarcia) y [Juan Torres Gómez](https://github.com/zaldih)\n\n:cat::baby_chick:\n\n---\n","funding_links":["https://opencollective.com/npkill","ethereum/0x7668e86c8bdb52034606db5aa0d2d4d73a0d4259","https://opencollective.com/npkill/contribute"],"categories":["Packages","TypeScript","Tools","Uncategorized","包","For Developers","目录","TypeScript (64)","cli","命令行工具","工具","typescript","工具库"],"sub_categories":["Command-line apps","CLI","Uncategorized","命令行程序","6. Reduce External Dependencies","命令行应用","开发工具"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidcosmos%2Fnpkill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoidcosmos%2Fnpkill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoidcosmos%2Fnpkill/lists"}