Créer un projet React à partir de zéro avec Webpack 4 et Babel

J’ai récemment appris à manipuler React et j’ai utilisé create-react-app pour créer facilement mes projets React avec un minimum d’efforts et de configuration. Je suppose que vous aussi avez probablement utilisé create-react-app ou react-slingshot pour créer votre réaction. Ce sont des outils fantastiques si vous voulez juste vous concentrer sur React et les laisser s’occuper de la configuration. Mais est-ce la façon dont vous voulez apprendre React?

Probablement pas, c’est pourquoi vous êtes ici. Alors, commençons 🙂

Commençons par le commencement :

Avant de commencer, vous devez avoir installé npm sur votre ordinateur, fourni avec Node.js.

Structure du dossier:

react boilerplate
Structure des fichiers pour l’application React

Initialiser le projet:

Tous les projets utilisant le gestionnaire de package de NodeJs (npm) doivent être initialisés. Pour initialiser un projet, entrez la commande ci-dessous dans un terminal. Cela créera un fichier package.json.

Quelques questions relatives au projet vous seront posées. Vous pouvez les ignorer en appuyant sur Entrée. Si vous souhaitez ignorer toutes les questions, ajoutez un indicateur -y.

Votre fichier package.json ressemblera à ceci.

Installation de Webpack:

Webpack est un module bundler qui nous permet de regrouper nos fichiers de projet dans un fichier unique pour la production. Ajoutons donc webpack à notre projet.

La commande ci-dessus ajoutera webpack et webpack-cli en tant que dépendance de développement de notre projet. Nous avons installé webpack-cli pour pouvoir utiliser webpack dans la ligne de commande.

Installation de React:

Installez react et react-dom en tant que dépendances.

Installation de Babel:

Pour que React fonctionne, nous devons également installer Babel. Nous avons besoin de Babel pour transpiler ES6 et JSX vers ES5.
Installez babel-core, babel-loader, babel-preset-env, babel-preset-react comme dépendances de dev.

  • babel-core: transforme le code ES6 en ES5.
  • babel-loader: assistant Webpack pour transpiler le code, en fonction du préréglage.
  • babel-preset-env : aide babel à convertir le code ES6, ES7 et ES8 en ES5.
  • babel-preset-react: transforme JSX en JavaScript.

Index.js:

Créez un fichier index.js à la racine du dossier /src , pour l’instant ajoutez le code suivant. Ce fichier sera le point d’entrée de notre application.

 

Index.html:

Créez un fichier index.html à la racine du dossier /src et ajoutez-y le code suivant.

Fichiers d’entrée et de sortie:

Créez un fichier webpack.config.js dans le répertoire racine du projet afin que nous puissions définir des règles pour nos loaders.
Définir le point d’entrée et le répertoire de sortie de notre application dans le fichier webpack.config.js

 

Dans le code ci-dessus, Webpack regroupera tous nos fichiers JavaScript dans un fichier index_bundle.js dans le répertoire /dist.

Loaders Webpack:

Ajoutez maintenant quelques loaders dans ce fichier, qui vont charger et regrouper les fichiers source.
Dans le fichier webpack.config.js, ajoutez les lignes de code suivantes:

Ici babel-loader est utilisé pour charger nos fichiers JSX/JavaScript et css-loader pour charger et regrouper tous les fichiers CSS dans un seul fichier et style-loader ajoutera tous les styles dans la balise de style du document.

Avant que Webpack puisse utiliser css-loader et style-loader, nous devons les installer en tant que dev-dependencies.

Gardez à l’esprit que webpack exécute les loaders du dernier au premier, c’est-à-dire de droite à gauche.

.babelrc:

Créez maintenant un fichier .babelrc à la racine du répertoire du projet avec le contenu suivant.

Ce fichier indiquera à babel les paramètres prédéfinis à utiliser pour la transcription du code. Ici, nous utilisons deux préréglages:

  • env : ce préréglage est utilisé pour transcrire le code ES6 / ES7 / ES8 en ES5.
  • react : Ce préréglage est utilisé pour transpiler le code JSX vers ES5.

Compiler des fichiers avec Webpack:

Ajoutez les lignes de code suivantes dans package.json comme ci-dessous:

Ici, j’ai utilisé watch, donc chaque fois qu’il y a un changement dans les fichiers source, webpack compilera automatiquement tous les fichiers source.

Webpack 4 propose deux modes, le mode de production qui produit des fichiers optimisés prêts à être utilisés en mode de production, et de développement qui produit un code facile à lire et vous offre la meilleure expérience de développement. Le –mode nous permet de choisir le mode à utiliser.

Maintenant, vous pouvez compiler le projet en utilisant la commande ci-dessous:

Après avoir exécuté la commande ci-dessus, vous verrez le fichier index_bundle.js créé dans le répertoire /dist qui contiendra le code ES5 transpilé à partir du fichier index.js.

App.js

Créez un fichier App.js dans le dossier components du dossier src avec le contenu suivant.

 

App.css:

Créez un fichier App.css dans le dossier styles du dossier src avec le contenu suivant.

Ce fichier CSS permet de s’assurer que css-loader et style-loader fonctionnent correctement.

Modifiez maintenant le fichier index.js créé précédemment pour qu’il contienne les lignes de code suivantes.

Installer le plugin HTML-webpack:

Maintenant, nous devons également installer le plugin html-webpack. Ce plugin génère un fichier HTML, injecte le script dans le fichier HTML et écrit ce fichier dans dist/index.html.
Installez le plugin html-webpack en tant que dev-dependency:

Nous devons maintenant configurer ce plugin dans le fichier webpack.config.js pour y ajouter les lignes de code suivantes.

Ici, la valeur de template key est le fichier index.html que nous avons créé précédemment. Il utilise ce fichier comme modèle et génère un nouveau fichier nommé index.html dans le dossier /dist avec le script injecté.

La configuration est presque terminée, tout ce que nous avons à faire est de compiler les fichiers source à l’aide de WebPack, vous pouvez exécuter le projet à l’aide de la commande ci-dessous:

Vous obtiendrez un output dans le dossier /dist du projet. Ouvrez maintenant le fichier index.html dans un navigateur Web. Le texte «My React App!» Apparaît.

Mais cette approche présente un inconvénient: vous devez actualiser manuellement la page Web afin de voir les modifications que vous avez apportées. Pour que webpack surveille nos modifications et actualise la page Web chaque fois que des modifications sont apportées à nos composants, nous pouvons installer webpack-dev-server.

Installation de Webpack-dev-server:

Installez webpack-dev-server en tant que dev-dependency

Et changez le script de démarrage package.json comme ci-dessous:

J’ai ajouté deux indicateurs –open et –hot qui ouvrent et actualisent la page Web chaque fois que des modifications sont apportées aux composants.

Maintenant, lancez la commande ci-dessous dans le terminal:

Vous devriez voir la fenêtre du navigateur s’ouvrir et afficher le contenu exactement comme pour la capture d’écran ci-dessous.
react-app-result
Ça y est, nous avons maintenant notre boilerplate React que nous pouvons utiliser pour créer nos projets React. 😀

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *