En aquest tema, aprendrem sobre el concepte de "mode" en Webpack, que és una configuració clau per optimitzar el procés de construcció segons l'entorn en què es troba el projecte (desenvolupament o producció).
Què és el Mode en Webpack?
El mode en Webpack és una configuració que permet definir l'entorn en què s'està construint l'aplicació. Webpack ofereix tres modes diferents:
- development: Optimitza la construcció per a un entorn de desenvolupament.
- production: Optimitza la construcció per a un entorn de producció.
- none: No aplica cap optimització específica.
Configuració del Mode
El mode es pot configurar de manera molt senzilla en el fitxer de configuració de Webpack (webpack.config.js). A continuació, es mostra un exemple de com configurar el mode:
// webpack.config.js
module.exports = {
mode: 'development', // o 'production' o 'none'
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: __dirname + '/dist'
}
};Diferències entre Modes
A continuació, es detallen les diferències principals entre els modes de desenvolupament i producció:
| Mode | Característiques |
|---|---|
| development | - Inclou mapes de fonts per a una millor depuració. |
| - No minifica el codi, facilitant la lectura i depuració. | |
| - Habilita el hot module replacement per a una experiència de desenvolupament més ràpida. | |
| production | - Minifica el codi per reduir la mida dels fitxers. |
| - Habilita el tree shaking per eliminar codi no utilitzat. | |
| - Inclou optimitzacions per a un millor rendiment. | |
| none | - No aplica cap optimització específica. |
Exemple Pràctic
Vegem un exemple pràctic de com canviar el mode segons l'entorn:
// webpack.config.js
const path = require('path');
module.exports = (env, argv) => {
return {
mode: argv.mode || 'development',
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
devtool: argv.mode === 'development' ? 'source-map' : false,
};
};En aquest exemple, el mode es defineix segons l'argument passat a la línia de comandes (argv.mode). Si no es passa cap mode, per defecte serà development. També es configura devtool per habilitar els mapes de fonts només en mode de desenvolupament.
Exercici Pràctic
-
Configura el mode en el teu projecte Webpack:
- Crea un fitxer
webpack.config.jssi encara no el tens. - Configura el mode a
developmenti comprova que els mapes de fonts estan habilitats. - Canvia el mode a
productioni comprova que el codi està minificat.
- Crea un fitxer
-
Experimenta amb els diferents modes:
- Crea un petit projecte amb un fitxer JavaScript senzill.
- Configura Webpack per a cada mode (
development,production,none) i observa les diferències en la sortida.
Solució de l'Exercici
// webpack.config.js
const path = require('path');
module.exports = (env, argv) => {
return {
mode: argv.mode || 'development',
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
devtool: argv.mode === 'development' ? 'source-map' : false,
};
};Per executar Webpack amb diferents modes, pots utilitzar les següents comandes:
# Mode desenvolupament npx webpack --mode development # Mode producció npx webpack --mode production # Mode cap npx webpack --mode none
Conclusió
El mode en Webpack és una configuració essencial que permet optimitzar el procés de construcció segons l'entorn. Utilitzar el mode adequat pot millorar significativament l'experiència de desenvolupament i el rendiment de l'aplicació en producció. En el proper tema, explorarem els "Loaders", que permeten a Webpack processar diferents tipus de fitxers.
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
