Babel: transpilador de JavaScript moderno
Clase 6 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
10:38 min - 6

Babel: transpilador de JavaScript moderno
Viendo ahora - 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
Adopta las últimas versiones de JavaScript sin romper la compatibilidad. Con Babel y una configuración mínima, es posible usar ECMAScript 2015, 2016 y 2017 y generar código estable para todos los browsers. Aquí verás qué problema resuelve, cómo trabaja y cómo configurarlo con webpack de forma simple.
¿Qué problema resuelve Babel en JavaScript moderno?
Las versiones anuales de ECMAScript traen mejoras que nos permiten escribir código más óptimo y rápido. El reto: muchas funcionalidades no están soportadas por todos los navegadores. En aplicaciones del lado del cliente no podemos controlar el navegador del usuario, por eso la compatibilidad con browsers es crítica.
Babel actúa como un transpilador: transforma y compila nuestro código moderno a una versión entendible por navegadores antiguos, probablemente ES5. Así aprovechamos las novedades sin sacrificar soporte.
¿Por qué la compatibilidad con browsers es crítica?
- No controlamos el navegador del usuario final.
- Funciones nuevas pueden fallar en producción.
- El soporte amplio evita bugs difíciles de rastrear.
¿Qué hace un transpilador como Babel?
- Traduce sintaxis moderna a JavaScript compatible.
- Compila antes de publicar el bundle final.
- Permite usar features como funciones flecha y parámetros por defecto.
¿Cómo funciona Babel en la práctica?
En el sitio oficial, babeljs.io, se muestra una demo clara: a la izquierda el código ES2016/ES2017 y a la derecha el código generado. Si escribes una función flecha, Babel la convierte en una función tradicional. Lo mismo ocurre con parámetros por defecto: se expande a código compatible que tú no querrías escribir a mano.
¿Qué muestra babeljs.io?
- Panel izquierdo: código con últimas funcionalidades de ECMAScript.
- Panel derecho: salida compilada compatible con navegadores.
- Comparación directa para entender la transformación.
// Código moderno
const doble = (x) => x * 2;
// Salida aproximada tras Babel
var doble = function (x) {
return x * 2;
};
// Código moderno con parámetro por defecto
function saludar(nombre = 'Mundo') {
return `Hola ${nombre}`;
}
// Salida aproximada tras Babel
function saludar(nombre) {
if (nombre === undefined) nombre = 'Mundo';
return 'Hola ' + nombre;
}
¿Cómo configurar presets e integrarlo con webpack?
Babel se configura con presets, que son conjuntos de funcionalidades ECMAScript a soportar durante la compilación. Existen presets oficiales como env, ES2015, ES2016, ES2017, latest, y también para React y Flow. Usar env permite ajustar la transformación según los browsers objetivo.
¿Qué es babel.rc y qué propiedades clave tiene?
El archivo babel.rc es JSON y define la lista de presets y opciones personalizadas. Se puede usar más de un preset. Una propiedad relevante es modules: false, que desactiva los módulos en Babel porque la resolución de módulos se hace con webpack y el bundle system.
{
"presets": ["env"],
"modules": false
}
- presets: lista de conjuntos de funcionalidades a compilar.
- modules: false indica que los módulos los maneja webpack.
¿Qué librerías instala el CLI y para qué sirven?
- babel core: núcleo de Babel, realiza la compilación.
- babel loader: regla de webpack para transformar código sin correr procesos a mano.
- babel preset env: conjunto de plugins/funcionalidades que indicamos a Babel para la transformación.
Todo esto suele venir preconfigurado por el CLI. La idea es entender qué hace cada pieza.
¿Cómo queda integrado en webpack?
En el webpack config se declara el babel loader. Así, al generar el bundle final, webpack aplica la transformación de Babel automáticamente. El resultado: código moderno en desarrollo y salida compatible en producción.
Este flujo no es exclusivo de Vue: puede aplicarse a cualquier proyecto de JavaScript. ¿Tienes dudas o quieres compartir tu configuración de Babel y webpack? Comenta tus experiencias y preguntas, y prepárate para explorar ESLint a continuación.