Soy Riyad Youssef. Soy el arquitecto de cliente en Dooda. Hoy hablaremos un poco sobre el mundo agrupado por encima y más allá. Entonces, ¿cómo gestionamos, cómo manejamos el código JavaScript agrupado? La primera pregunta que probablemente te hagas es ¿por qué? ¿Por qué necesitamos agrupar en absoluto? Tengo mi código, lo tengo en los archivos, ¿por qué necesito agruparlo? Para responder a eso, tenemos que retroceder un poco en la historia, un poco hacia la era de los dinosaurios, donde nuestras bases de código no se mantenían. Nuestros archivos se veían así. Teníamos archivos enormes, muchas líneas. Y si queríamos dividirlos en archivos más pequeños, teníamos que poner muchas etiquetas de script dentro de un documento, y era realmente difícil de mantener. Era realmente difícil de entender qué estaba sucediendo allí.
Entonces, hoy en día, queremos escribir algún tipo de código modular. Tenemos módulos en el navegador, pero aún no está completamente listo, así que simplemente escribimos módulos en nuestro código fuente, ¿verdad? Tenemos un código, un archivo, digamos app.jsx, y tiene dependencias. Tiene la dependencia app-reference, top, bottom y button. Tal vez tengan interdependencias entre sí, y tal vez esas dependencias tengan sus propias dependencias y se conecten entre sí. ¿Cómo manejamos eso? Tenemos Webpack. Webpack es hoy en día la forma estándar, y con un asterisco, porque hay muchas herramientas similares que lo mejoran un poco, pero Webpack es el estándar de facto para agrupar módulos. Así que hoy hablaremos un poco sobre Webpack y cómo usarlo. Así que solo un poco, una introducción a Webpack. Webpack crea un solo archivo, un solo paquete, que contiene todo el código, y lo hace, si no le decimos lo contrario, simplemente le decimos, está bien, le señalamos la entrada principal, el índice, el archivo principal, y le decimos dónde generar la salida.
Webpack funciona de esta manera. Va a la entrada, intenta entender a partir de la entrada cuáles son las dependencias, y las analiza, y de forma recursiva construye todo el árbol de dependencias y tal vez Lodash tenga su propia dependencia, y luego simplemente recopila todas las dependencias, entiende las dependencias y las agrupa. Las agrupa en un paquete ordenado Bundle.js. Básicamente serializa la dependencia con un poco de magia desde arriba, por lo que las serializa en un solo archivo, Bundle.js, y luego podemos tomar este archivo Bundle.js y usarlo en nuestro HTML. Podemos ponerlo en una etiqueta de script, porque eso es algo que los navegadores saben cómo manejar. Pero tenemos un problema, porque Webpack, a menos que se indique lo contrario, agrupará todo en un solo archivo. Aquí puedes ver un gráfico de dependencias. Es un gráfico de dependencias real de una aplicación de tamaño mediano, y si agrupas todo esto juntos, obtienes 15 megabytes de Bundle. Eso es suficiente para desesperar a cualquiera. Pero en Webpack, podemos hacer divisiones de código. Así que podemos definir para Webpack. Tenemos puntos de división en el código, por lo que no queremos agrupar todo en un solo archivo, sino que queremos, desde estos puntos, agrupar en este archivo y luego tener un fragmento dinámico. Así que divide mi código e inclúyelo solo cuando lo necesite. Esta es la forma más fácil de hacerlo.
Comments