npm

nodedepstestsbuildsbuilds2coveragelicensesPR's bienvenue

taille de l'installation

webpack est un module bundler. Son objectif principal est de regrouper des fichiers JavaScript pour les utiliser dans un navigateur, mais il est également capable de transformer, de regrouper ou d’emballer à peu près n’importe quelle ressource ou actif.

Table des matières

  1. Installation
  2. Introduction
  3. Concepts
  4. Contribuer
  5. Support
  6. Core Team
  7. Sponsoring
  8. Premium. Partenaires
  9. Autres soutiens et sponsors
  10. Sponsors or
  11. Sponsors argent
  12. Sponsors bronze
  13. Soutiens
  14. Merciements spéciaux

Installer

Installer avec npm :

npm install --save-dev webpack

Installation avec yarn:

yarn add webpack --dev

Introduction

webpack est un bundler pour modules. Son objectif principal est de regrouper des fichiers JavaScript pour les utiliser dans un navigateur, mais il est également capable de transformer, de regrouper ou d’empaqueter à peu près n’importe quelle ressource ou actif.

TL;DR

  • Bundles ES Modules, CommonJS, et modules AMD (même combinés).
  • Peut créer un seul bundle ou plusieurs morceaux qui sont chargés de manière asynchrone au moment de l’exécution (pour réduire le temps de chargement initial).
  • Les dépendances sont résolues pendant la compilation, ce qui réduit la taille de l’exécution.
  • Les chargeurs peuvent prétraiter les fichiers pendant la compilation, par exemple TypeScript vers JavaScript, les chaînes Handlebars vers les fonctions compilées, les images vers Base64, etc.
  • Système de plugins très modulaire pour faire tout ce que votre application exige d’autre.

Démarrer

Consultez le guide de démarrage rapide de webpack et les autres guides.

Compatibilité des navigateurs

webpack prend en charge tous les navigateurs conformes à ES5 (IE8 et moins ne sont pas pris en charge).webpack a également besoin de Promise pour import() et require.ensure(). Si vous souhaitez prendre en charge des navigateurs plus anciens, vous devrez charger un polyfill avant d’utiliser ces expressions.

Concepts

Plugins

webpack possède une interface de plugin riche. La plupart des fonctionnalitésau sein de webpack lui-même utilisent cette interface de plugin. Cela rend webpack trèsflexible.

Nom Statut Taille d’installation Description
mini…css-extract-plugin mini-css-npm mini-css-size Extrait les CSS dans des fichiers séparés. Il crée un fichier CSS par fichier JS qui contient du CSS.
compression-webpack-plugin compression-npm compression-size Prépare les versions compressées des actifs pour les servir avec Content-Encoding
html-webpack-.plugin html-plugin-npm html-plugin-size Simplifie la création de fichiers HTML (index.html) pour servir vos bundles

Chargeurs

webpack permet l’utilisation de chargeurs pour prétraiter les fichiers. Cela vous permet de regrouper une ressource statique bien au-delà de JavaScript. Vous pouvez facilement écrire vos propres loaders en utilisant Node.js.

Les loaders sont activés en utilisant des préfixes loadername! dans les déclarations require(),ou sont automatiquement appliqués via regex à partir de votre configuration webpack.

Fichiers

Nom Statut Taille de l’installation Description
raw-loader raw-npm raw-size Charge le contenu brut d’un fichier (utf-8)
val-loader val-npm val-size Exécute le code en tant que module et considère les exportations comme du code JS
url-loader url-npm url-size Fonctionne comme le chargeur de fichiers, mais peut retourner une Url de données si le fichier est plus petit qu’une limite
file-loader file-npm file-size Emet le fichier dans le dossier de sortie et retourne l’url (relatif)

JSON

.

Nom Etat Taille de l’installation Description
cson-npm cson-taille Charge et transpile un fichier CSON

Transpile

.

Nom Statut Taille de l’installation Description
babel-npm babel-size Charge le code ES2015+ et le transpose en ES5 à l’aide de Babel
traceur-npm traceur-...size Charge le code ES2015+ et le transpile en ES5 en utilisant Traceur
type-.npm type-size Charge TypeScript comme JavaScript
coffee-npm coffee-taille Charge CoffeeScript comme JavaScript

Templating

.

Nom Statut Taille de l’installation Description
html-.npm html-size Exports HTML comme chaîne de caractères, nécessite des références à des ressources statiques
pug-npm pug-size Charge les modèles de Pug et renvoie une fonction
md-npm md-...size Compile Markdown en HTML
posthtml-npm posthtml-taille Charge et transforme un fichier HTML en utilisant PostHTML
hbs-npm hbs-taille Compile les guidons en HTML

Stylisme

.

Nom Statut Taille de l’installation Description
<style> style-npm style-size Ajouter les exportations d’un module comme style au DOM
css-npm css-size Charge le fichier CSS avec les importations résolues et retourne le code CSS
less-npm less-size Charge et compile un fichier LESS
sass-npm sass-size Charge et compile un fichier Sass/SCSS
stylus-npm stylus-size Charge et compile un fichier Stylus
postcss-npm postcss-size Charge et transforme un fichier CSS/SSS en utilisant PostCSS

Frameworks

.

Nom Statut Taille de l’installation Description
vue-...npm vue-size Charge et compile les composants Vue
polymer-npm polymer-.size Traiter le HTML & CSS avec le préprocesseur de son choix et les require()composants Web comme des modules de première classe
angular-...npm angular-size Charge et compile les composants Angular 2
riot-npm riot-size Riot official webpack loader

Performance

webpack utilise des E/S asynchrones et possède plusieurs niveaux de cache. Cela rend webpack rapide et incroyablement rapide sur les compilations incrémentales.

Formats de modules

webpack supporte les modules ES2015+, CommonJS et AMD dès la boîte. Il effectue des analyses statiques astucieuses sur l’AST de votre code. Il dispose même d’un moteur d’évaluation pour évaluer des expressions simples. Cela vous permet de prendre en charge la plupart des bibliothèques existantes dès la boîte.

Fractionnement du code

webpack vous permet de fractionner votre base de code en plusieurs chunks. Les chunks sont chargés de manière asynchrone au moment de l’exécution. Cela réduit le temps de chargement initial.

Optimisations

webpack peut effectuer de nombreuses optimisations pour réduire la taille de sortie de votreJavaScript en dédupliquant les modules fréquemment utilisés, en les minifiant et en vous donnant le contrôle total de ce qui est chargé initialement et de ce qui est chargé au moment de l’exécutiongrâce au fractionnement du code. Il peut également rendre vos morceaux de code amis du cache en utilisant des hachages.

Contribuer

Nous voulons que la contribution à webpack soit amusante, agréable et éducative pour tout le monde, et pour tout le monde. Nous avons un écosystème vibrant qui s’étend au-delà de ce seul repo. Nous vous invitons à consulter n’importe quel dépôt de notre organisation ou de l’organisation webpack-contrib qui abrite tous nos chargeurs et plugins.

Les contributions vont bien au-delà des pull requests et des commits. Bien que nous aimions vous donner l’opportunité de mettre votre empreinte sur webpack, nous sommes également ravis de recevoir une variété d’autres contributions, notamment :

  • Mises à jour de la documentation, améliorations, conceptions ou corrections de bogues
  • Corrections orthographiques ou grammaticales
  • README.md corrections ou remaniements
  • Ajout de tests unitaires, ou fonctionnels
  • Traitement des problèmes GitHub — en particulier déterminer si un problème persiste encore ou est reproductible.
  • Recherche #webpack sur twitter et aider quelqu’un d’autre qui a besoin d’aide
  • Enseigner les autres comment contribuer à l’un des nombreux dépôts de webpack !
  • Bloguer, parler ou créer des tutoriels sur l’une des nombreuses fonctionnalités de webpack.
  • Aider les autres dans notre canal gitter webpack.

Pour commencer, jetez un œil à notre documentation sur la contribution.

Si vous êtes inquiet ou ne savez pas par où commencer, vous pouvez toujours joindre Sean Larkin (@TheLarkInn) sur Twitter ou simplement soumettre un problème et un mainteneur peut aider à vous donner des conseils !

Nous avons également commencé une série sur notre publication Medium appelée The Contributor’s Guide to webpack. Nous vous invitons à la lire et à poster vos questions ou réponses si vous avez encore besoin d’aide.

Vous cherchez à parler de webpack ? Nous serions ravis de passer en revue votre résumé de conférence/DPC ! Vous pouvez l’envoyer par courriel à webpack opencollective com et nous pouvons donner des pointeurs ou des conseils !!!

Créer vos propres plugins et chargeurs

Si vous créez un chargeur ou un plugin, nous voudrions <3 que vous l’ouvriez à la source, et le mettiez sur npm. Nous suivons la convention de nommage x-loader, x-webpack-plugin.

Support

Nous considérons webpack comme un outil de bas niveau utilisé non seulement individuellement mais aussi en couches sous d’autres outils géniaux. En raison de sa flexibilité, webpack n’est pas toujours la solution d’entrée de gamme la plus facile, cependant nous croyons qu’il est le plus puissant. Cela dit, nous sommes toujours à la recherche de moyens d’améliorer et de simplifier l’outil sans compromettre sa fonctionnalité. Si vous avez des idées sur les moyens d’y parvenir, nous sommes tout ouïe !

Si vous débutez, jetez un œil à notre nouvelle page de docs et concepts. Cela a un aperçu de haut niveau qui est excellent pour les débutants !

Vous cherchez des docs sur webpack 1 ? Veuillez consulter l’ancien wiki, mais notez que cette version dépréciée n’est plus supportée.

Si vous voulez discuter de quelque chose ou si vous avez simplement besoin d’aide, voici notre salle Gitter où il y a toujours des individus qui cherchent à aider !

Si vous avez toujours des difficultés, nous aimerions que vous posiez une question sur StackOverflow avec le tag webpack. Il est beaucoup plus facile de répondre aux questions qui incluent votre webpack.config.js et les fichiers pertinents ! Donc, si vous pouvez les fournir, nous serions extrêmement reconnaissants (et plus susceptibles de vous aider à trouver la réponse !)

Si vous êtes doué pour twitter, vous pouvez tweeter #webpack avec votre question et quelqu’un devrait être en mesure d’atteindre et d’aider également.

Si vous avez découvert un 🐜 ou avez une suggestion de fonctionnalité, n’hésitez pas à créer une question sur Github.

Licence

Statut FOSSA

Core Team


Tobias Koppers

Core

Fondateur de webpack


Johannes Ewald

Loaders & Plugins

Adopteur précoce de webpack


Sean T. Larkin

Relations publiques

Fondateur de l’équipe centrale


Kees Kluskens

Développement

.

Sponsor

La plupart des membres de l’équipe centrale, les contributeurs de webpack et les contributeurs de l’écosystème font ce travail open source pendant leur temps libre. Si vous utilisez webpack pour une tâche sérieuse, et que vous souhaitez que nous y investissions plus de temps, faites un don. Ce projet augmente également votre revenu/productivité. Il rend le développement et les applications plus rapides et il réduit la bande passante nécessaire.

Voici comment nous utilisons les dons :

  • Permettre à l’équipe centrale de travailler sur webpack
  • Remercier les contributeurs s’ils ont investi une grande quantité de temps dans la contribution
  • Soutenir les projets de l’écosystème qui ont une grande valeur pour les utilisateurs
  • Soutenir les projets qui. sont les plus votés (travaux en cours)
  • Coût de l’infrastructure
  • Frais de gestion de l’argent

Partenaires Premium

Autres backers et sponsors

Avant que nous commencions à utiliser OpenCollective, les dons étaient faits de manière anonyme. Maintenant que nous avons fait le changement, nous aimerions reconnaître ces sponsors (et ceux qui continuent à faire des dons en utilisant OpenCollective). Si nous avons oublié quelqu’un, veuillez nous envoyer un PR, et nous vous ajouterons à cette liste.

AngularMoonMailMONEI

Sponsors or

Devenez un sponsor or et obtenez votre logo sur notre README sur Github avec un lien vers votre site.

Sponsors argent

Devenez un sponsor argent et obtenez votre logo sur notre README sur Github avec un lien vers votre site.

Sponsors de bronze

Devenez un sponsor de bronze et obtenez votre logo sur notre README sur Github avec un lien vers votre site.

Backers

Devenez un backer et obtenez votre image sur notre README sur Github avec un lien vers votre site.

Remerciements spéciaux à

(Par ordre chronologique)

  • @google pour Google Web Toolkit (GWT), qui vise à compiler Java en JavaScript. Il présente un Code Splitting similaire à celui de webpack.
  • @medikoo pour modules-webmake, qui est un projet similaire. webpack est né parce que je voulais un Code Splitting pour modules-webmake. Il est intéressant de noter que la question du Code Splitting est toujours ouverte (merci également à @Phoscur pour la discussion).
  • @substack pour browserify, qui est un projet similaire et la source de nombreuses idées.
  • @jrburke pour require.js, qui est un projet similaire et la source de nombreuses idées.
  • @defunctzombie pour la spécification browser-field, qui rend les modules disponibles pour node.js, browserify et webpack.
  • Chaque utilisateur précoce de webpack, qui a contribué à webpack en écrivant des problèmes ou des PR. Vous avez influencé la direction…
  • @shama, @jhnns et @sokra pour maintenir ce projet
  • Chaque personne qui a écrit un chargeur pour webpack. Vous êtes l’écosystème…
  • Tout le monde que j’ai oublié de mentionner ici, mais qui a aussi influencé webpack.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.