Nwani Victory travaille à distance en tant que développeur Fullstack de Lagos, au Nigeria. Après les heures de bureau, il sert également d'ingénieur Cloud à la recherche de moyens de rendre Cloud … En savoir plus sur Nwani ↬
Les navigateurs modernes fournissent un bon support pour les modules JavaScript, mais les bundlers de modules tels que webpack restent un élément essentiel de la chaîne d'outils JavaScript. Examinons en profondeur ce qu'est le webpack et comment l'utiliser dans votre flux de travail de développement.
Au début de l'introduction de la modularité dans JavaScript, il n'y avait pas de support natif pour l'exécution de modules dans le navigateur. . La prise en charge de la programmation modulaire était implémentée dans Node.js à l'aide du CommonJS blueprint et elle était adoptée par ceux qui utilisaient JavaScript pour créer des applications côté serveur.[19659006] Il avait également des perspectives pour de grandes applications Web car les développeurs pouvaient éviter les collisions d'espaces de noms et créer des bases de code plus maintenables en écrivant du code dans un modèle plus modulaire. Mais il restait un défi : les modules ne pouvaient pas être utilisés dans les navigateurs Web, où JavaScript était généralement exécuté.
Pour résoudre ce problème, les bundlers de modules tels que webpackParcelRollup ainsi que le compilateur de fermeture de Google ont été écrits pour créer des ensembles optimisés de votre code pour le téléchargement et l'exécution du navigateur de votre utilisateur final.
Que fait Cela signifie-t-il « regrouper » votre code ?
Le code de regroupement fait référence à la combinaison et à l'optimisation de plusieurs modules en un ou plusieurs ensembles prêts à la production. Le bundle mentionné ici peut être mieux compris comme le produit final de l'ensemble du processus de regroupement.
Dans cet article, nous nous concentrerons sur webpackun outil écrit par Tobias Koppers , qui au fil du temps est devenu un outil majeur au sein de la chaîne d'outils JavaScript, souvent utilisé dans les grands et les petits projets.
Remarque :Pour bénéficier de cet article, il est judicieux de se familiariser avec JavaScript. modules. Vous aurez également besoin de Nodeinstallé sur votre machine locale, afin que vous puissiez installer et utiliser webpack localement.
Qu'est-ce que webpack?
webpack est un hautement extensible et configurable bundle de modules statiques pour les applications JavaScript. Grâce à sa nature extensible, vous pouvez brancher des chargeurs et des plug-ins externes pour atteindre votre objectif final.
Comme le montre l'illustration ci-dessous, webpack parcourt votre application à partir d'un point d'entrée racineconstruit un graphe de dépendances comprenant des dépendances qui agissent directement ou indirectement sur le fichier racine et produisent des bundles optimisés des modules combinés. ( Grand aperçu)
Pour comprendre le fonctionnement de webpack, nous devons comprendre certaines terminologies qu'il utilise (consultez webpack Glossary. Cette terminologie est souvent utilisée dans cet article, et c'est également fréquemment référencé dans la documentation de webpack.
Chunk Un chunk fait référence au code extrait des modules.Ce code sera stocké dans un chunk file.Les morceaux sont couramment utilisés lorsque vous effectuez une division de code avec webpack.
Modules Modules sont des parties décomposées de votre application que vous importez pour effectuer une tâche ou une fonction spécifique. Webpack prend en charge les modules créés à l'aide de Syntaxe ES6CommonJS et AMD.
Assets Le terme assets est fréquemment utilisé dans webpack et d'autres bundlers en général. fait référence aux fichiers statiques regroupés lors de la construction traiter. Ces fichiers peuvent être n'importe quoi, des images aux polices ou même des fichiers vidéo. En poursuivant votre lecture de l'article, vous verrez comment nous utilisons les chargeurs pour travailler avec différents types d'actifs.
Une fois que nous 'ai compris ce qu'est le webpack et quelle terminologie il utilise, voyons comment ils s'appliquent à la création d'un fichier de configuration pour un projet de démonstration.
Remarque : Vous aurez également besoin de webpack -cli installé pour utiliser webpack sur votre machine. S'il n'est pas installé, vous serez invité à partir de votre terminal à l'installer.
fichiers de configuration webpack
Alternativement à l'utilisation de webpack-cli à partir d'un terminal, vous pouvez utiliser webpack dans votre projet via un fichier de configuration. Mais avec les versions récentes de webpack, nous pouvons utiliser webpack dans notre projet sans un fichier de configuration. Nous utilisons ensuite webpack comme valeur de l'une des commandes de notre fichier package.jsonsans aucun indicateur. De cette façon, webpack supposera que le fichier de point d'entrée de votre projet réside dans le répertoire src. Il regroupera le fichier d'entrée et le sortira dans le répertoire dist.
Un exemple est un exemple de fichier package.json ci-dessous. Nous utilisons webpack pour regrouper l'application sans fichier de configuration :
Lors de l'exécution de la commande build dans le fichier ci-dessus, webpack regroupera le fichier dans le répertoire src/index.js et le sortira dans un fichier main.js dans un répertoire dist. webpack est cependant beaucoup plus flexible que cela. Nous pouvons modifier le point d'entréeajuster le point de sortie et affiner de nombreux autres comportements par défaut en éditant un fichier de configuration avec le drapeau -- config.
Un exemple est la version modifiée. commande du fichier package.json ci-dessus :
"build" : "webpack --config webpack.config.js"
Ci-dessus, nous avons ajouté le --config flag et spécifié un webpack.config.js comme fichier ayant la nouvelle configuration webpack.
Le fichier webpack.config.js n'existe pas encore cependant. Nous devons donc le créer dans notre répertoire d'application et coller le code suivant ci-dessous dans le fichier.
# webpack.config.js
const chemin = require("chemin")
module.exports = {
entrée : "./src/entrée",
production : {
chemin : chemin.resolve(__dirname, "dist"),
nom de fichier : "output.js"
}
}
Le fichier ci-dessus configure toujours webpack pour regrouper votre fichier JavaScript, mais nous pouvons maintenant définir une entrée personnalisée et des chemins de fichier de sortie plutôt que le chemin par défaut utilisé par webpack.
Quelques points à noter à propos d'un fichier de configuration webpack :
Un fichier de configuration webpack est un fichier JavaScript, écrit comme un module JavaScript CommonJS.
Un fichier de configuration webpack exporte un objet avec plusieurs propriétés . Chacune de ces propriétés est utilisée comme option pour configurer webpack lors du regroupement de votre code. Un exemple est l'option mode :
mode En configuration, cette option est utilisée pour définir la valeur NODE_ENV lors du regroupement. Il peut avoir une valeur production ou développement. Lorsqu'il n'est pas spécifié, il sera par défaut à aucun. Il est également important de noter que webpack regroupe vos ressources différemment en fonction de la valeur mode. Par exemple, webpack met automatiquement en cache vos bundles en mode développement pour optimiser et réduire le temps de bundle. Reportez-vous à la section mode de la documentation webpack pour voir un journal des modifications des options appliquées automatiquement dans chaque mode.