Introducció
Webpack és un empaquetador de mòduls per a aplicacions JavaScript modernes. És una eina que permet agrupar tots els recursos del teu projecte (JavaScript, CSS, imatges, etc.) en un o més fitxers de sortida, optimitzant-los per a la producció. Webpack és especialment útil per a projectes grans i complexos, ja que ajuda a gestionar les dependències i a millorar el rendiment de l'aplicació.
Conceptes Clau
- Mòduls
- Definició: Un mòdul és qualsevol peça de codi que es pot importar o exportar en JavaScript. Pot ser un fitxer JavaScript, un fitxer CSS, una imatge, etc.
- Exemple: Un fitxer
main.jsque importa una funció d'un altre fitxerutils.js.
- Bundling
- Definició: El procés d'agrupar diversos mòduls en un o més fitxers de sortida.
- Benefici: Redueix el nombre de sol·licituds HTTP necessàries per carregar una pàgina web, millorant així el rendiment.
- Loaders
- Definició: Transformen els fitxers de diferents tipus (CSS, imatges, etc.) en mòduls que Webpack pot processar.
- Exemple:
css-loaderper carregar fitxers CSS.
- Plugins
- Definició: Extensions que permeten personalitzar el procés de construcció de Webpack.
- Exemple:
HtmlWebpackPluginper generar automàticament un fitxer HTML que inclogui tots els bundles.
Per què Utilitzar Webpack?
- Gestió de Dependències
- Avantatge: Webpack analitza les dependències entre els mòduls i crea un gràfic de dependències, assegurant que els mòduls es carreguin en l'ordre correcte.
- Optimització del Rendiment
- Avantatge: Webpack ofereix diverses tècniques d'optimització com la minificació, la divisió de codi (code splitting) i el tree shaking per eliminar codi no utilitzat.
- Modularitat
- Avantatge: Facilita la creació de codi modular, fent que el manteniment i l'escalabilitat del projecte siguin més senzills.
- Integració amb Altres Eines
- Avantatge: Webpack es pot integrar fàcilment amb altres eines i frameworks com Babel, React, Vue, etc.
Exemples Pràctics
Exemple 1: Fitxer JavaScript senzill
// utils.js
export function greet(name) {
return `Hello, ${name}!`;
}
// main.js
import { greet } from './utils';
console.log(greet('World'));Exemple 2: Fitxer CSS
Exemple 3: Configuració Bàsica de Webpack
// webpack.config.js
const path = require('path');
module.exports = {
entry: './src/main.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
}
};Exercici Pràctic
Objectiu
Crear una configuració bàsica de Webpack que empaqueti un fitxer JavaScript i un fitxer CSS.
Passos
-
Crea un directori de projecte i inicialitza un projecte Node.js:
mkdir my-webpack-project cd my-webpack-project npm init -y -
Instal·la Webpack i Webpack CLI:
npm install --save-dev webpack webpack-cli -
Crea els fitxers següents:
src/main.jssrc/utils.jssrc/styles.csswebpack.config.js
-
Afegeix el codi següent als fitxers:
src/utils.js:export function greet(name) { return `Hello, ${name}!`; }src/main.js:import { greet } from './utils'; import './styles.css'; console.log(greet('World'));src/styles.css:body { background-color: #f0f0f0; font-family: Arial, sans-serif; }webpack.config.js:const path = require('path'); module.exports = { entry: './src/main.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.css$/, use: ['style-loader', 'css-loader'] } ] } };
-
Executa Webpack per crear el bundle:
npx webpack
Solució
Després d'executar Webpack, hauríeu de veure un fitxer bundle.js dins del directori dist. Aquest fitxer conté el codi JavaScript i CSS empaquetat.
Conclusió
En aquesta secció, hem après què és Webpack, els seus conceptes clau i per què és útil per a la gestió de projectes JavaScript moderns. També hem vist exemples pràctics i hem realitzat un exercici per crear una configuració bàsica de Webpack. En el següent tema, explorarem com configurar Webpack en un projecte des de zero.
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
