size-limit
Evitar el aumento descontrolado del tamaño de los bundles de JavaScript mediante presupuestos de rendimiento automatizados.
Herramienta de presupuesto de rendimiento para JavaScript que calcula el coste real en bytes y tiempo de carga de tu código para los usuarios finales.
Notas y contexto
Qué es
size-limit es una herramienta diseñada para controlar y auditar el impacto real en bytes y rendimiento que tiene tu código JavaScript en los usuarios finales. A diferencia de otros contadores de bytes simples, analiza no solo el peso del archivo comprimido, sino también el tiempo estimado de descarga, parseo y ejecución en dispositivos móviles de gama baja. Se integra de manera natural en entornos de integración continua para evitar que cambios de código introduzcan dependencias excesivamente pesadas de forma accidental.
Para qué sirve
- Definir presupuestos de rendimiento estrictos para tus bundles de JavaScript o CSS y hacer fallar el build si se superan.
- Analizar el impacto de rendimiento de una librería estimando el tiempo de ejecución y descarga en redes 3G y CPUs móviles lentas.
- Visualizar de forma detallada la composición de tu bundle para identificar qué dependencias ocupan más espacio utilizando herramientas integradas de análisis.
- Automatizar comentarios en los Pull Requests que muestran exactamente cuántos kilobytes o milisegundos añade o resta el cambio propuesto.
Cuándo usarlo
Es sumamente recomendable utilizarlo en proyectos web modernos donde el rendimiento en dispositivos móviles y la velocidad de carga (Core Web Vitals) son críticos. Es especialmente útil al desarrollar librerías de distribución pública para asegurar que mantengan un tamaño mínimo, y en aplicaciones React, Vue o similares de gran escala. Como alternativas o herramientas complementarias destacan bundlesize, webpack-bundle-analyzer o herramientas integradas de Vite/Rollup.
Puntos clave
- Ofrece soporte nativo y presets específicos para proyectos configurados con Webpack, Rollup y ESBuild.
- Calcula el tamaño después de la compresión Gzip o Brotli, emulando la transmisión real por red.
- Integra un análisis de coste de CPU utilizando headless browsers para medir cuánto tiempo tarda el motor de JS en procesar los scripts.
- Configuración sencilla directamente en el archivo package.json o mediante archivos de configuración dedicados (.sizelimit.json).
Ten en cuenta
El cálculo del tiempo de ejecución en CPU móvil es una estimación simulada y puede variar dependiendo de las condiciones del entorno del servidor de CI. Además, la configuración con empaquetadores muy personalizados puede requerir que definas rutas de bundles específicas manualmente en lugar de usar la autodetección.