En aquest tema, aprendrem a crear i entendre el fitxer de configuració de Webpack, que és essencial per personalitzar el comportament de Webpack segons les necessitats del teu projecte.
Què és el Fitxer de Configuració de Webpack?
El fitxer de configuració de Webpack és un arxiu JavaScript que defineix com Webpack ha de construir el teu projecte. Aquest fitxer permet especificar punts d'entrada, sortides, loaders, plugins i altres opcions de configuració.
Creació del Fitxer de Configuració
Per començar, crea un fitxer anomenat webpack.config.js
a l'arrel del teu projecte. Aquest fitxer contindrà la configuració de Webpack.
Estructura Bàsica del Fitxer de Configuració
A continuació, es mostra un exemple bàsic de webpack.config.js
:
const path = require('path'); module.exports = { entry: './src/index.js', // Punt d'entrada output: { filename: 'bundle.js', // Nom del fitxer de sortida path: path.resolve(__dirname, 'dist') // Directori de sortida }, module: { rules: [ { test: /\.css$/, // Expressió regular per identificar fitxers CSS use: ['style-loader', 'css-loader'] // Loaders per processar fitxers CSS } ] }, plugins: [ // Aquí es poden afegir plugins ], mode: 'development' // Mode de desenvolupament };
Explicació del Codi
-
Importació del Mòdul
path
:const path = require('path');
Utilitzem el mòdul
path
de Node.js per treballar amb rutes de fitxers. -
Exportació de la Configuració:
module.exports = { // Configuració aquí };
Exportem un objecte de configuració que Webpack utilitzarà.
-
Punt d'Entrada:
entry: './src/index.js',
Defineix el fitxer d'entrada principal del teu projecte.
-
Sortida:
output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') },
Especifica el nom del fitxer de sortida i el directori on es guardarà.
-
Loaders:
module: { rules: [ { test: /\.css$/, use: ['style-loader', 'css-loader'] } ] },
Defineix les regles per processar diferents tipus de fitxers. En aquest cas, estem utilitzant
style-loader
icss-loader
per processar fitxers CSS. -
Plugins:
plugins: [ // Aquí es poden afegir plugins ],
Aquí es poden afegir plugins per estendre la funcionalitat de Webpack.
-
Mode:
mode: 'development'
Defineix el mode de Webpack (
development
oproduction
).
Exemple Pràctic
Pas 1: Crear l'Estructura del Projecte
Crea l'estructura següent per al teu projecte:
Pas 2: Instal·lar les Dependències
Executa les següents comandes per instal·lar Webpack i els loaders necessaris:
Pas 3: Escriure el Codi
src/index.js
src/style.css
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: /\.css$/, use: ['style-loader', 'css-loader'] } ] }, mode: 'development' };
Pas 4: Construir el Projecte
Executa la següent comanda per construir el projecte:
Això generarà un fitxer bundle.js
al directori dist
.
Exercici Pràctic
Exercici
- Crea un fitxer
webpack.config.js
per un projecte que tingui els següents requisits:- Punt d'entrada:
src/app.js
- Fitxer de sortida:
main.js
al directoribuild
- Processar fitxers SCSS amb
sass-loader
,css-loader
istyle-loader
- Mode de producció
- Punt d'entrada:
Solució
const path = require('path'); module.exports = { entry: './src/app.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'build') }, module: { rules: [ { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] } ] }, mode: 'production' };
Conclusió
En aquesta secció, hem après a crear i configurar un fitxer de configuració de Webpack. Hem vist com definir punts d'entrada, sortides, loaders i el mode de Webpack. Aquest coneixement és fonamental per personalitzar i optimitzar el procés de construcció del teu projecte amb Webpack. En el següent tema, explorarem com realitzar una construcció bàsica amb Webpack.
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