Maison >interface Web >js tutoriel >Explication des regroupeurs de modules : Webpack, Rollup, Parcel et Snowpack avec des exemples
Créer un site Web peut sembler simple avec uniquement du HTML, du CSS et du JavaScript. Mais à mesure que votre application se développe, vous aurez besoin de plus que ces ingrédients. Vous pouvez utiliser TypeScript, des bibliothèques d'interface utilisateur comme React, un préprocesseur CSS comme SASS ou des modules tiers. Le défi survient lorsque les dépendances ne fonctionnent pas bien ensemble, ce qui entraîne des conflits, des fichiers volumineux et des temps de chargement lents.
C'est ici que les groupeurs de modules entrent en jeu. Les regroupeurs de modules comme Webpack, Rollup, Parcel et Snowpack vous aider à gérer et optimiser votre code pour une expérience de développement et de production plus fluide et plus rapide. Dans ce blog, nous explorerons le rôle de ces bundlers avec des exemples pour rendre le concept plus facile à comprendre.
Un bundler de modules est un outil qui prend tout votre code, ses dépendances et ses modules, et les regroupe en un seul ou quelques fichiers optimisés pour le navigateur. Cela réduit le nombre de requêtes HTTP, améliore les temps de chargement et gère efficacement les dépendances.
Lorsque vous créez une application Web moderne, vous rencontrez divers défis :
Les bundles de modules résolvent ces problèmes en :
Commençons par un exemple du fonctionnement de Webpack. Supposons que vous ayez un simple fichier index.js avec des dépendances comme Lodash.
Étape 1 : Initialiser un nouveau projet.
mkdir my-project cd my-project npm init -y npm install lodash --save
Étape 2 : Créez le fichier index.js dans le répertoire src.
// src/index.js import _ from 'lodash'; console.log(_.camelCase('hello world'));
Étape 3 : Créez un fichier index.html dans le répertoire public.
<!-- public/index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Webpack Example</title> </head> <body> <h1>Webpack Example</h1> <script src="../dist/main.js"></script> </body> </html>
Étape 4 : Installez Webpack et Webpack CLI.
npm install webpack webpack-cli --save-dev
Étape 5 : Créez un fichier de configuration Webpack (webpack.config.js).
// webpack.config.js const path = require('path'); module.exports = { entry: './src/index.js', // Entry point of our app output: { filename: 'main.js', path: path.resolve(__dirname, 'dist'), // Output directory }, mode: 'development', // Development mode (use 'production' for production) };
Étape 6 : Ajoutez un script dans package.json pour exécuter Webpack.
mkdir my-project cd my-project npm init -y npm install lodash --save
Étape 7 : Exécutez Webpack pour regrouper le code.
// src/index.js import _ from 'lodash'; console.log(_.camelCase('hello world'));
Cela regroupera votre fichier index.js et ses dépendances dans un fichier main.js dans le dossier dist. Vous pouvez désormais référencer ce fichier dans votre index.html.
Rollup est conçu pour regrouper des bibliothèques JavaScript et créer des bundles optimisés pour les petits projets. Contrairement à Webpack, Rollup se concentre sur des bundles plus petits et plus efficaces en supprimant le code inutilisé (secouement d'arbre).
Exemple de configuration :
<!-- public/index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Webpack Example</title> </head> <body> <h1>Webpack Example</h1> <script src="../dist/main.js"></script> </body> </html>
Créez un simple fichier rollup.config.js :
npm install webpack webpack-cli --save-dev
Pour regrouper l'application, vous pouvez exécuter Rollup avec :
// webpack.config.js const path = require('path'); module.exports = { entry: './src/index.js', // Entry point of our app output: { filename: 'main.js', path: path.resolve(__dirname, 'dist'), // Output directory }, mode: 'development', // Development mode (use 'production' for production) };
Le rollup est beaucoup plus simple et efficace lors du regroupement de petits projets ou de bibliothèques en raison de ses capacités d'arborescence.
Parcel est un bundler sans configuration. Il détecte et regroupe automatiquement tous les actifs dont vous avez besoin sans fichier de configuration. Il est adapté aux débutants et parfait pour les projets de petite et moyenne taille.
Exemple de configuration :
"scripts": { "build": "webpack" }
Dans index.js :
npm run build
Pour exécuter le serveur de développement :
npm init -y npm install lodash --save npm install rollup --save-dev
Parcel gère automatiquement le regroupement, le rechargement en direct et le fractionnement du code sans aucune configuration supplémentaire.
Snowpack est un bundler moderne et rapide qui ne reconstruit les fichiers que lorsque cela est nécessaire. Au lieu de tout compiler à chaque modification, il envoie vos dépendances directement au navigateur pour un développement plus rapide.
Exemple de configuration :
// rollup.config.js import { terser } from 'rollup-plugin-terser'; export default { input: 'src/index.js', // Entry point output: { file: 'dist/bundle.js', format: 'iife', // Immediate function execution name: 'MyApp', }, plugins: [terser()], // Minify the output bundle };
Créez une configuration simple dans snowpack.config.js :
npx rollup -c
Exécuter Snowpack :
npm init -y npm install parcel-bundler --save-dev npm install lodash --save
Snowpack compile uniquement les fichiers qui ont été modifiés, fournissant des mises à jour instantanées pendant le développement.
Les bundles de modules comme Webpack, Rollup, Parcel et Snowpack sont des outils cruciaux dans le développement Web moderne. Ils aident à gérer les dépendances, à optimiser le code et à réduire les temps de chargement de vos applications. Voici un bref résumé des bundlers :
En comprenant le fonctionnement de ces outils, vous pouvez choisir celui qui correspond le mieux aux besoins de votre projet et booster votre flux de travail de développement Web !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!