Reduciendo Tamaño Paquete NPM en un 83%

Keff - Jun 19 '20 - - Dev Community

Este articulo a sido traducido a partir de este articulo:

NPM hace ya algun tiempo añadio Unpacked Size a los detalles de los paquetes, gracias a esto me di cuenta que una de mis libreria pesaba demasiado para lo que hacia (350kb).

Comence a investigar un poco, I me di cuenta que habia muchos archivos que se estaban publicando, pero no eran necesarios para el correcto funcionamiento del paquete, aparte estaban ignorados en .gitignore...

La solucion fue hacer uso de .npmignore e ignorar todos los archivos que no eran necesarios. Había oído y visto el archivo .npmignore en otros proyectos, pero nunca tuve razon para probarlo.

Como me comentaron en el post original, esta podría ser solucionado haciendo uso del campo files en el archivo package.json.

Aparte de esto use una herramienta llamada size-limit calcula el coste real de correr tu aplicación o modulo y sus dependencias, gracias a esto detecte que tenia un par de dependencias que pesaban excesivamente mucho para lo que las necesitaba. Al cambiar las librerias consegui reducir el tamaño todavía mas.

Algunas librerías que cambie:

Antes Tamaño despues Tamaño
cli-color 98.7 kb colors 39.5 kb
requests 201 kb phin 10.1 kb

Como puedes ver, esto hace una gran diferencia para una pequeña librería (-250 kb).

Reduci el paquete de 359 kb a 59 kb, alrededor de -83 % :P

Aviso

Si estas comenzando o no sabes si deberías optimizar, no pierda el tiempo optimizando tu código hasta que comprendas por qué y cómo se está optimizando, la optimizacion precoz o incecesaria puede causar errores y comportamientos no esperados.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .