Cómo funciona webpack.config.js
Clase 5 de 53 • Curso Profesional de Vue.js 2
Contenido del curso
CLI y Dev Tools
- 3

Instalación de Vue.js: Node, Dev Tools y CLI
06:13 min - 4

Crear una aplicación Vue con CLI y webpack
12:49 min - 5

Cómo funciona webpack.config.js
Viendo ahora - 6

Babel: transpilador de JavaScript moderno
05:06 min - 7

ESLint con Standard JS: linteo automático en webpack
15:34 min - 8

Configuración de Sass y Bulma en Vue
06:18 min - 9

Cómo configurar Pug en Vue con webpack
04:23 min - 10
Diseño de Mockups: Práctica y Colaboración en Comunidad
00:20 min - 11
Creación de Vistas con Mockups y Vue.js
00:32 min
Manipulación del DOM
- 12

Expresiones en Vue: sintaxis doble llave
03:49 min - 13

Diferencia entre v-show y v-if en el DOM
06:22 min - 14

Qué es data binding en Vue.js
04:11 min - 15

Computed properties en Vue.js: cómo crearlas
04:13 min - 16

Qué son los watchers de Vue
02:25 min - 17

Eventos Vue: directiva v-on y métodos format
06:12 min - 18

Cómo construir una interfaz de búsqueda completa en Vue
19:03 min - 19
Manipulación del DOM con Vue.js: Práctica y Ejercicios
03:00 min
REST y HTTP
Sistema de Componentes
- 23

Cómo crear componentes en Vue
08:46 min - 24

Componentes Layout en Vue con Bulma
09:50 min - 25

Reactividad en Vue: $set y Object.assign
06:14 min - 26

Hooks del ciclo de vida en Vue.js
05:38 min - 27

Comunicación padre-hijo con props en Vue
23:27 min - 28

Eventos en Vue: comunicar hijo a padre
12:04 min - 29

Slots: HTML dinámico en componentes Vue
13:42 min - 30

Plugin Event Bus: comunicar componentes sin relación en Vue
19:19 min
Vue Router
Extendiendo VueJS
Clases, Animaciones y Transiciones36
Vuex
- 39

Cómo Vuex centraliza estados en Vue
03:41 min - 40

Instalación de Vuex con estado único
17:32 min - 41

Cómo usar mutations y commit en Vuex
08:16 min - 42

Getters de Vuex: mapGetters y store sincronizado
07:35 min - 43

Cómo dispatch ejecuta actions asincrónicas en ViewX
07:54 min - 44

Instalación de Viewex en Platzi Music
26:37 min
Nuxt.js
Deploy a Producción con Now
Conclusiones
Bonus
Aprende a configurar webpack con seguridad y criterio: desde el concepto de Module Bundler hasta el uso de loaders como vue-loader, babel-loader y file-loader, pasando por devServer, performance y source maps. Verás cómo pasar de un código pensado para el desarrollador a un bundle óptimo para el navegador, sin perder claridad ni mantenibilidad.
¿Qué es webpack y para qué sirve en el proyecto?
Trabaja como un Module Bundler que toma múltiples archivos locales y genera uno o varios bundles para producción. Esto permite desarrollar con módulos separados y entregar al browser un archivo optimizado.
- Código para desarrollador vs. browser: modularidad cómoda para mantener, frente a compatibilidad del navegador.
- Soporte más allá de JavaScript: incluye CSS, SVG, imágenes y URLs en el bundle.
- Proceso intermedio necesario: transforma código moderno en algo que el browser entienda.
¿Cómo se estructura webpack.config.js y qué hace cada parte?
Corre sobre Node, por eso se usa el módulo nativo path, se referencia la librería webpack y se exporta la configuración con CommonJS mediante module.exports.
// webpack.config.js (fragmento ilustrativo)
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: '.../archivo/de/entrada.js', // punto de entrada.
output: {
path: path.resolve(__dirname, 'dist'), // carpeta de salida.
filename: 'build.js' // nombre del bundle final.
},
module: { rules: [
{ test: /\.vue$/, loader: 'vue-loader' },
{ test: /\.js$/, loader: 'babel-loader' },
{ test: /\.(png|jpe?g|gif|svg)$/, loader: 'file-loader' }
]}
};
¿Qué define entry y cómo funciona el tree shaking?
- entry: archivo de entrada que inicia el build.
- tree shaking: el bundle final incluye solo los módulos requeridos directa o indirectamente desde el entry.
- Beneficio clave: configuras un único entry point y webpack construye todo el árbol de dependencias.
¿Cómo se configura output con path y filename?
- output.path: con
path.resolveapuntas a la carpetadisten la raíz del proyecto. - output.filename: nombre del bundle, por ejemplo build.js.
- Ventaja: controlas la ubicación y el nombre del artefacto final.
¿Qué resuelven las rules y los loaders?
Las rules definen transformaciones entre la entrada y la salida. Permiten ejecutar procesos intermedios como linteo, tests, compilación de estilos o transpilación de JavaScript.
vue-loaderpara archivos.vue.- Compila componentes
.vuea JavaScript entendible por el navegador. - Integra loaders de estilos: vue-style-loader, css-loader y sass-loader.
- Mismo patrón para CSS y SASS.
babel-loaderpara archivos.js.- Usa Babel como transpilador de ECMAScript moderno a código compatible con navegadores antiguos.
- Permite despreocuparse de la compatibilidad si se configura correctamente.
file-loaderpara imágenes.png,.jpg,.gif,.svg.- Incluye activos estáticos dentro del bundle final.
¿Qué herramientas ofrece webpack para desarrollo y producción?
Además del build, puedes mejorar el flujo de trabajo con resolución de módulos, servidor de desarrollo y diagnósticos de rendimiento. También separar comportamientos entre desarrollo y producción.
- resolve: indica a Vue.js qué archivos debe compilar.
- devServer: servidor web basado en webpack para desarrollo.
- Ajuste útil:
noInfo: falsepara ver más información en consola. - performance: muestra pistas sobre posibles problemas de rendimiento, como tamaños de archivos.
- devTool: genera un source map para depuración más fácil.
- Condición de producción: si se compila para producción, se aplican optimizaciones.
- Minificar el código y agilificarlo.
- Generar un source map adecuado para entornos productivos.
- En desarrollo, se mantiene una configuración más cómoda para debug.
Habilidades que refuerzas aquí:
- Configurar un webpack.config.js entendiendo cada propiedad.
- Aplicar loaders para componentes .vue, estilos CSS/SASS y activos estáticos.
- Transpilar con Babel para compatibilidad multi-navegador.
- Usar devServer para un ciclo de desarrollo fluido.
- Ajustar performance y source maps según el entorno.
¿Tienes dudas o quieres compartir cómo organizas tus loaders y el build de producción? Deja tu comentario y conversemos sobre mejores prácticas.