En aquest tema, aprendrem com configurar Webpack per a un projecte React. Això inclou la configuració de loaders i plugins específics per a React, així com la integració amb Babel per a la transpilació de codi JSX.
Objectius
- Configurar Webpack per a un projecte React.
- Utilitzar loaders per a la transpilació de JSX.
- Integrar Babel amb Webpack.
- Configurar el servidor de desenvolupament de Webpack per a React.
Requisits Previs
- Coneixements bàsics de Webpack.
- Coneixements bàsics de React.
- Coneixements bàsics de Babel.
Passos per Configurar Webpack amb React
- Instal·lació de Dependències
Primer, necessitem instal·lar les dependències necessàries. Això inclou Webpack, Babel i React.
npm install --save-dev webpack webpack-cli webpack-dev-server babel-loader @babel/core @babel/preset-env @babel/preset-react npm install --save react react-dom
- Configuració del Fitxer webpack.config.js
webpack.config.jsCreem un fitxer webpack.config.js a l'arrel del nostre projecte amb la següent configuració bàsica:
const path = require('path');
module.exports = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
        },
      },
    ],
  },
  resolve: {
    extensions: ['.js', '.jsx'],
  },
  devServer: {
    contentBase: path.join(__dirname, 'dist'),
    compress: true,
    port: 9000,
  },
  mode: 'development',
};
- Configuració de Babel
Creem un fitxer .babelrc a l'arrel del nostre projecte amb la següent configuració:
- Estructura del Projecte
L'estructura del projecte hauria de ser similar a la següent:
/my-react-app
  /node_modules
  /src
    /components
      App.jsx
    index.js
  .babelrc
  package.json
  webpack.config.js
- Creació de Components React
Creem un component React bàsic a src/components/App.jsx:
import React from 'react';
const App = () => {
  return (
    <div>
      <h1>Hello, React with Webpack!</h1>
    </div>
  );
};
export default App;
- Punt d'Entrada
Creem el punt d'entrada a src/index.js:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App';
ReactDOM.render(<App />, document.getElementById('root'));
- Configuració del HTML
Creem un fitxer index.html a la carpeta dist:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>React with Webpack</title> </head> <body> <div id="root"></div> <script src="bundle.js"></script> </body> </html>
- Executar el Servidor de Desenvolupament
Afegim un script al package.json per executar el servidor de desenvolupament:
Ara podem executar el servidor de desenvolupament amb:
Exercici Pràctic
Exercici 1: Afegir un Nou Component
- Crea un nou component Header.jsxa la carpetasrc/components.
- Fes que el component Headermostri un títol i una descripció.
- Importa i utilitza el component Headerdins del componentApp.
Solució
src/components/Header.jsx
import React from 'react';
const Header = () => {
  return (
    <header>
      <h1>Welcome to My React App</h1>
      <p>This is a simple React application configured with Webpack.</p>
    </header>
  );
};
export default Header;src/components/App.jsx
import React from 'react';
import Header from './Header';
const App = () => {
  return (
    <div>
      <Header />
      <h1>Hello, React with Webpack!</h1>
    </div>
  );
};
export default App;Conclusió
En aquesta secció, hem après a configurar Webpack per a un projecte React, incloent la configuració de loaders i plugins específics per a React, així com la integració amb Babel. També hem creat un component React bàsic i hem configurat el servidor de desenvolupament de Webpack per a React. Amb aquests coneixements, estem preparats per desenvolupar aplicacions React més complexes utilitzant 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
