Introducció
Babel és un transpilador de JavaScript que permet utilitzar les últimes característiques del llenguatge, independentment de si el navegador les suporta o no. En aquest tema, aprendrem com integrar Babel amb Webpack per assegurar-nos que el nostre codi JavaScript sigui compatible amb una àmplia gamma de navegadors.
Objectius
- Entendre què és Babel i per què és útil.
- Aprendre a configurar Babel amb Webpack.
- Veure exemples pràctics de com utilitzar Babel en un projecte Webpack.
Què és Babel?
Babel és una eina que permet convertir codi JavaScript d'última generació en una versió compatible amb navegadors més antics. Això és especialment útil quan es vol utilitzar característiques modernes d'ECMAScript (com ara les classes, les funcions de fletxa, etc.) sense preocupar-se per la compatibilitat del navegador.
Configuració de Babel amb Webpack
Passos per a la Integració
-
Instal·lació de Babel i els seus paquets necessaris:
Primer, hem d'instal·lar Babel i alguns paquets essencials utilitzant npm o yarn.
npm install --save-dev @babel/core @babel/preset-env babel-loader
-
Creació del fitxer de configuració de Babel:
A la carpeta arrel del projecte, crea un fitxer anomenat
.babelrc
i afegeix la següent configuració:{ "presets": ["@babel/preset-env"] }
Aquesta configuració utilitza el preset
@babel/preset-env
, que és un conjunt de plugins que permeten utilitzar les últimes característiques d'ECMAScript. -
Configuració de Webpack per utilitzar Babel:
Modifica el fitxer de configuració de Webpack (
webpack.config.js
) per incloure el loader de Babel.const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader' } } ] } };
En aquesta configuració, estem dient a Webpack que utilitzi
babel-loader
per a tots els fitxers.js
, excepte els que es troben a la carpetanode_modules
.
Exemple Pràctic
Suposem que tenim el següent codi JavaScript modern a src/index.js
:
Després de configurar Babel i Webpack com s'ha descrit anteriorment, podem executar Webpack per transpil·lar aquest codi a una versió compatible amb navegadors més antics.
El resultat serà un fitxer bundle.js
a la carpeta dist
que contindrà el codi transpil·lat.
Exercici Pràctic
- Configura un projecte Webpack des de zero i integra Babel.
- Escriu codi JavaScript modern que utilitzi característiques com les classes i les funcions de fletxa.
- Transpil·la el codi utilitzant Webpack i Babel.
Solució
-
Instal·lació de dependències:
npm init -y npm install --save-dev webpack webpack-cli @babel/core @babel/preset-env babel-loader
-
Configuració de Babel (
.babelrc
):{ "presets": ["@babel/preset-env"] }
-
Configuració de Webpack (
webpack.config.js
):const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader' } } ] } };
-
Codi JavaScript modern (
src/index.js
):class Person { constructor(name) { this.name = name; } greet() { console.log(`Hello, my name is ${this.name}`); } } const john = new Person('John'); john.greet();
-
Executar Webpack:
npx webpack
Conclusió
Integrar Babel amb Webpack és un pas essencial per assegurar que el nostre codi JavaScript sigui compatible amb una àmplia gamma de navegadors. Amb Babel, podem utilitzar les últimes característiques del llenguatge sense preocupar-nos per la compatibilitat. En el següent tema, explorarem com integrar Webpack amb TypeScript per afegir tipat estàtic al nostre projecte.
Curs de Webpack
Mòdul 1: Introducció a Webpack
- Què és Webpack?
- Configuració de Webpack
- Fitxer de Configuració de Webpack
- Construcció Bàsica amb Webpack
Mòdul 2: Conceptes Bàsics
Mòdul 3: Configuració Avançada
Mòdul 4: Eines de Desenvolupament
Mòdul 5: Optimització per a Producció
Mòdul 6: Integracions i Tècniques Avançades
- Integració amb Babel
- Integració amb TypeScript
- Ús de Webpack amb React
- Ús de Webpack amb Vue
- Plugins i Loaders Personalitzats
Mòdul 7: Projectes del Món Real
- Configuració d'un Projecte React
- Configuració d'un Projecte Vue
- Configuració d'un Projecte Node.js
- Migració de Projectes Heretats a Webpack