ES

Chunking

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2026
November 16 - 19, 2026
New York, US & Online
Upcoming event
JSNation US 2026
JSNation US 2026
November 16 - 19, 2026. New York, US & Online
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Get started

Examinamos cómo los bundlers colocan módulos en archivos de salida en un proceso llamado "chunking". ¿Cuáles son las métricas en competencia que pueden ser influenciadas por el chunking? ¿Por qué el chunking de CSS y JS es completamente diferente? ¿Cuáles son las consideraciones de rendimiento para aplicaciones grandes? ¿Cómo funciona el chunking de JS y el chunking de CSS en Webpack/Turbopack/Next.js (a un nivel alto)?

This talk has been presented at Web Engineering Summit 2026, check out the latest edition of this Tech Conference.

Tobias Koppers
Tobias Koppers
28 min
11 Jun, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Tobias Koppers de Vercel explica el proceso de chunking en bundlers y su impacto en la organización de módulos y la eficiencia de carga. Las estrategias de optimización implican analizar métricas, grupos de chunks, conteos de solicitudes y almacenamiento en caché a largo plazo para un mejor rendimiento. Gestionar las compensaciones en el chunking con almacenamiento en caché a largo plazo, corrección y consideraciones de orden CSS es crucial. Los desafíos incluyen dependencias implícitas de CSS, envío excesivo y equilibrar el orden de CSS para futuras optimizaciones. Las complejidades del tiempo de compilación y los desafíos de optimización futura destacan la naturaleza evolutiva de las estrategias de chunking.
Available in English: Chunking

1. Understanding Chunking in Bundlers

Short description:

Tobias Koppers de Vercel discute sobre el chunking en los bundlers, explicando el proceso de colocar módulos en archivos de salida conocidos como chunks. El chunking implica organizar módulos basados en dependencias y bordes especiales como importaciones asíncronas. La visualización ayuda a entender cómo funciona el chunking al crear ciclos alrededor de los módulos para una carga eficiente.

Mi nombre es Tobias Koppers, trabajo en Vercel como el equipo de TurboPack, y hoy otro tema de Bundler, chunking. Entonces, ¿qué es el chunking en absoluto? Así que mi definición de chunking es que es un proceso en un Bundler que coloca módulos en archivos de salida, y usualmente llamo a estos archivos de salida chunks porque, bueno, se me ocurrió este nombre. Así que básicamente es como tomamos el grafo de módulos de tu aplicación, decidimos de alguna manera extraña cómo ponerlo en chunks, y ese es el proceso de chunking.

Si lo visualizas, podría haber un ejemplo realmente simple aquí. Así que tenemos un grafo de módulos, uno realmente pequeño para este caso. Así que tenemos un montón de módulos, estos puntos blancos, y estos módulos usualmente están conectados a través de dependencias, como un import o un require o un import asíncrono, y estos son los bordes del grafo. Y me di cuenta de un borde realmente especial aquí, porque es realmente especial para el chunking, es este rojo punteado. Eso es un import asíncrono, como un import dinámico o algo así, donde cargas algo bajo demanda.

Y también, usualmente, tu grafo de módulos tiene muchos puntos vacíos, tal vez tus páginas o esas cosas. Y aquí, las páginas más importantes de una aplicación son, por supuesto, la página legal y la página de precios. Y básicamente puedes visualizar el chunking de una manera que simplemente dibujas ciclos alrededor de estos módulos. Y sí, hice esto con los ciclos de pantalla, y básicamente significa que todos estos módulos que están ciclado juntos se colocan en un archivo de salida. Y un ejemplo, como este import asíncrono aquí en el lado izquierdo, con la cosa punteada roja, la cosa punteada, se coloca en sus propios chunks para que podamos cargarlo bajo demanda.

2. Optimizing Chunking Strategies with Metrics

Short description:

Explorando métricas y grupos de chunks en el proceso de chunking para optimizar el rendimiento. Métricas como el tamaño de descarga por grupo de chunks y el conteo de solicitudes juegan un papel crucial en las estrategias de chunking para una carga eficiente de módulos.

Y tenemos todos los puntos de entrada siendo sus propios chunks, porque entonces podemos cargarlos independientemente de las otras páginas. Y también puedes, como en este ejemplo, poner el área media de módulos que son compartidos por estos dos puntos de entrada en sus propios chunks para que podamos compartir eso. Pero sí, es realmente complicado. Puedes idear muchas maneras diferentes de ciclar estos módulos. Y sí, ese es el proceso de chunking, no de ciclado. Y cómo hacer chunking de una buena manera.

Además, sí, una cosa es que puedes mirar las métricas. Así que la mayoría de las veces nos preocupamos por las métricas de rendimiento. Así que estas métricas influyen en cómo dividimos las cosas en chunks. Y antes de que miremos las métricas, queremos mirar otro término, y ese es grupos de chunks. Y digo que los grupos de chunks son básicamente un conjunto de chunks que se cargan juntos. Eso podría ser en una carga inicial de página, cargas como estos 10 chunks en etiquetas de script, y ese es un grupo de chunks de carga inicial. Pero también hay otros tipos de grupos de chunks. Como en una importación dinámica, hay como un grupo de carga asíncrona donde cargas estos chunks juntos como un grupo. O una navegación entre dos páginas es también como un grupo de chunks.

Y realmente queremos mirar algunas métricas, y una métrica es el tamaño de descarga. Y con tamaño de descarga, no me refiero al tamaño del bundle, porque la gente a menudo ve el tamaño del bundle como este es el tamaño de la carpeta de salida que produce el bundler. Pero el tamaño total de esa carpeta rara vez importa. Podría importar para el tiempo de compilación de tu aplicación, pero no importa para el rendimiento percibido por el usuario. Lo que realmente importa es como el tamaño de descarga por grupo de chunks.

Available in other languages:

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
No REST para Cap'n Web
Node Congress 2026Node Congress 2026
23 min
No REST para Cap'n Web
Top Content
Kenton Varda advocates for using CapnWeb, an RPC protocol, over REST for web APIs, emphasizing benefits for humans and AI agents. CapnWeb simplifies client-server communications by treating them as function calls. TypeScript type checking ensures method accuracy in CapnWeb across JavaScript runtimes. Stubs in CapnWeb allow method calls to execute on remote objects and simulate all possible method names for remote calls. Converting REST APIs to CapnWeb streamlines code and improves API calls. CapnWeb enhances API functionality with object-specific RPC sessions and promises pipelining for multilevel API optimization. AI agent security challenges are addressed with sandboxing and token protection in CapnWeb. CapnWeb capabilities for AI agents include passing restricted CapnWeb stubs and exploring capability-based security with CapnProto.
Rome, ¡una cadena de herramientas moderna!
JSNation 2023JSNation 2023
31 min
Rome, ¡una cadena de herramientas moderna!
Top Content
Rome is a toolchain built in Rust that aims to replace multiple tools and provide high-quality diagnostics for code maintenance. It simplifies tool interactions by performing all operations once, generating a shared structure for all tools. Rome offers a customizable format experience with a stable formatter and a linter with over 150 rules. It integrates with VCS and VLSP, supports error-resilient parsing, and has exciting plans for the future, including the ability to create JavaScript plugins. Rome aims to be a top-notch toolchain and welcomes community input to improve its work.
Conquistando la Complejidad: Refactorización de Proyectos JavaScript
JSNation 2024JSNation 2024
21 min
Conquistando la Complejidad: Refactorización de Proyectos JavaScript
Top Content
Today's Talk explores the complexity in code and its impact. It discusses different methods of measuring complexity, such as cyclomatic complexity and cognitive complexity. The importance of understanding and conquering complexity is emphasized, with a demo showcasing complexity in a codebase. The Talk also delves into the need for change and the role of refactoring in dealing with complexity. Tips and techniques for refactoring are shared, including the use of language features and tools to simplify code. Overall, the Talk provides insights into managing and reducing complexity in software development.
Mejorando la Felicidad del Desarrollador con IA
React Summit 2023React Summit 2023
29 min
Mejorando la Felicidad del Desarrollador con IA
Top Content
GitHub Copilot is an auto-completion tool that provides suggestions based on context. Research has shown that developers using Copilot feel less frustrated, spend less time searching externally, and experience less mental effort on repetitive tasks. Copilot can generate code for various tasks, including adding modals, testing, and refactoring. It is a useful tool for improving productivity and saving time, especially for junior developers and those working in unfamiliar domains. Security concerns have been addressed with optional data sharing and different versions for individuals and businesses.
Automatiza el Navegador con la API de Renderizado del Navegador de Workers
JSNation 2024JSNation 2024
20 min
Automatiza el Navegador con la API de Renderizado del Navegador de Workers
The Talk discusses browser automation using the Worker's Browser Rendering API, which allows tasks like navigating websites, taking screenshots, and creating PDFs. Cloudflare integrated Puppeteer with their workers to automate browser tasks, and their browser rendering API combines remote browser isolation with Puppeteer. Use cases for the API include taking screenshots, generating PDFs, automating web applications, and gathering performance metrics. The Talk also covers extending sessions and performance metrics using Durable Objects. Thank you for attending!

Workshops on related topic

Pragmática 101 sobre Herramientas JS Personalizadas para tu Proyecto
JSNation US 2025JSNation US 2025
122 min
Pragmática 101 sobre Herramientas JS Personalizadas para tu Proyecto
Featured Workshop
Will Klein
Will Klein
Vamos a desmitificar los secretos de las herramientas modernas de JavaScript. En este masterclass, aprenderás cómo funcionan los linters, compiladores y transformaciones de código. Darás tus primeros pasos construyendo tus propias herramientas de desarrollo, escribiendo una regla de ESLint, un plugin de compilador y una transformación de código. Aprende estas habilidades para ayudar a tu equipo y profundizar tu comprensión de los lenguajes de computadora.Plan del Masterclass:Una vista previa de cómo se pueden usar los ASTsUn breve recorrido de cómo funcionan los compiladoresUna introducción a trabajar con un ASTEl secreto para hacer miles de cambios en segundosCómo aplicar esta habilidad
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
JSNation 2023JSNation 2023
44 min
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
WorkshopFree
Ryan Albrecht
Ryan Albrecht
¿Conoces ese molesto error? ¿El que no aparece localmente? Y no importa cuántas veces intentes recrear el entorno, no puedes reproducirlo. Has revisado las migas de pan, leído la traza de pila y ahora estás jugando al detective para unir los tickets de soporte y asegurarte de que sea real.
Únete al desarrollador de Sentry, Ryan Albrecht, en esta charla para aprender cómo los desarrolladores pueden utilizar la Reproducción de Sesiones, una herramienta que proporciona reproducciones de video de las interacciones de los usuarios, para identificar, reproducir y resolver errores y problemas de rendimiento más rápido (sin golpear tu cabeza contra el teclado).