Webpack esencial

¿Qué es un "bundle"?

  • Un bundle es el resultado de los distintos módulos y dependencias de una aplicación (JavasCript, CSS, imágenes, recursos, etc) tras pasar por la fase de compilación de Webpack.
     
  • Webpack puede dividir el bundle principal en varios bundles relacionados por contexto, temática o naturaleza y cargarlos de forma asíncrona cuando se necesiten. Proceso conocido como bundle splitting y lazy loading, respectivamente.

 

Fuente: Webpack glossary.

Webpack esencial

¿Qué es el "dependency graph"?

  • Partiendo del punto (o puntos) de entrada Webpack busca las dependencias entre documentos, de forma recursiva, construyendo al final un gráfico o mapa de las interdependencias entre los módulos y recursos de la aplicación.

Fuente: Webpack glossary.

Webpack esencial

¿Qué es un "loader"?

  • Un loader pre-procesa nuestro código fuente y lo devuelve transformado de alguna forma. Se trata de una característica super poderosa de Webpack que nos permite crear un workflow de desarrollo a la carta.
     
  • Por ejemplo, podemos transpilar JavaScript, procesar SASS, interpretar CSS como módulos o extraer imágenes y convertirlas en Base64, por citar unos pocos.

Fuente: Webpack glossary.

Webpack esencial

¿Qué es un "plugin"?

  • Un plugin puede hacer todo lo que no puede hacer un loader. Los loaders tienen sus limitaciones, siendo la más obvia que sólo pueden transformar recursos o dependencias que se van a añadir al dependency graph.
     
  • Hay otras tareas que extienden Webpack a través de plugins, como minificar HTML, descartar CSS sin usar o generar source maps. Entre otros.

Fuente: Webpack glossary.

Webpack esencial

¿Qué es "Hot Module Replacement"?

  • HMR es como tener Live Reload para cada módulo de forma independiente, no sólo para la aplicación en conjunto.
     
  • Cuando se reciben actualizaciones, estas se aplican únicamente a las partes (módulos en este caso) que han cambiado en lugar de lanzar un full refresh.
     
  • Esto permite conservar el estado de la aplicación y acelerar el proceso de desarrollo.

Fuente: Webpack glossary.

Webpack esencial

¿Qué es un "chunk"?

  • Un chunk o "pedazo" permite a Webpack dividir el bundle o bundles finales  en trozos relacionados por dependencias comunes, tamaño, etc.
     
  • Los chunks son parte imprescindible de técnicas como de división de código o "code splitting" que permiten cargar bajo demanda diferentes partes de nuestra aplicación y reducir el tamaño del bundle principal.

Fuente: Webpack glossary.

Webpack esencial

¿Qué es "tree shaking"?

  • Tree Shaking es un termino (piensa en las hojas de un árbol) que identifica la acción de eliminar el código que no estás utilizando o "dead code" en tu aplicación.
     
  • Para Webpack "dead code" es todo el código que no te ve utilizar. Por ejemplo objetos import sin utilizar, librerías sin implementar, etc.
     
  • En ocasiones Webpack no sabe determinar qué código esta muerto, por lo que debemos ser explícitos e indicárselo.

Fuente: Webpack glossary.

Webpack esencial

By Juan Andrés Núñez

Webpack esencial

  • 484