Webpack - es ist ein Werkzeug, mit dem Sie komplexe Projekte mithilfe eines modularen JavaScript-Systems entwickeln und verwalten können. Es ermöglicht Ihnen, alle Ihre Dateien, Stile, Bilder und andere Ressourcen in einem einzigen Build zu sammeln, wodurch Ihr Projekt effizienter und benutzerfreundlicher wird.
In diesem Handbuch erfahren Sie, wie Sie Webpack verwenden, um Abhängigkeiten zu verwalten, Assemblys zu erstellen, Code zu optimieren und vieles mehr. Sie erfahren, wie Sie ein Webpack einrichten, die erforderlichen Loader und Plugins hinzufügen, Ihren Code in Module aufteilen und bei Bedarf importieren.
In diesem Artikel werden wir uns die folgenden Themen ansehen:
- Was ist Webpack und welche Funktionalität bietet es.
- Installieren und Konfigurieren von Webpack.
- Verwenden Sie Bootloader und Plugins, um Dateien zu verarbeiten und zu optimieren.
- Code in Module aufteilen und dynamisch laden.
- Leistungsoptimierung und Codekomprimierung.
Wenn Sie gerade erst anfangen, Webpack zu lernen oder Ihr Wissen über dieses Tool verbessern möchten, wird Ihnen unser ausführlicher Leitfaden helfen, die Grundlagen der Arbeit mit Webpack zu verstehen und es effektiv in Ihren Projekten anzuwenden. Mach mit und fang an!
Installieren und Konfigurieren von Webpack
Um Webpack zu installieren, benötigen Sie einen Node.js ist eine Open-Source-Plattform, die zum Ausführen von serverseitigem JavaScript-Code verwendet wird. Sie können Node herunterladen und installieren.js von der offiziellen Website https://nodejs.org .
Nach erfolgreicher Node-Installation.js Der npm-Paketmanager (Node Package Manager) steht Ihnen zur Verfügung, mit dem Sie Projektabhängigkeiten installieren und verwalten können. Verwenden Sie den folgenden Befehl, um Webpack zu installieren:
npm install webpack --global
Außerdem ist eine Webpack-Konfigurationsdatei für Ihr Projekt erforderlich, um mit Webpack arbeiten zu können.config.js. Diese Datei gibt Webpack an, welche Quelldateien gesammelt werden sollen und welche Transformationsregeln auf sie angewendet werden sollen. Erstellen Sie eine neue Datei mit folgendem Inhalt:
const path = require('path');module.exports = ,>;
In diesem Beispiel geben wir an, dass der Einstiegspunkt für die Assembly die Datei src/index ist.js und das Ergebnis von Webpack ist eine Bundle-Datei.js, das im dist-Verzeichnis im Stammverzeichnis Ihres Projekts gespeichert wird.
Nachdem Sie nun Webpack installiert und die Konfigurationsdatei konfiguriert haben, können Sie mit diesem Tool beginnen und den Entwicklungsprozess Ihrer Webanwendung verbessern.
Erstellen einer Konfigurationsdatei für Webpack
Bevor Sie Webpack verwenden, müssen Sie eine Konfigurationsdatei für das Projekt konfigurieren. Diese Datei enthält alle erforderlichen Kompilierungs- und Build-Optionen für JavaScript- und CSS-Dateien sowie andere Einstellungen.
Die Konfigurationsdatei wird normalerweise als webpack.config.js und befindet sich im Stammverzeichnis des Projekts. Um eine Datei zu erstellen, erstellen Sie einfach eine neue Datei mit dem angegebenen Namen und öffnen Sie sie in einem beliebigen Texteditor.
Die grundlegende Struktur der Konfigurationsdatei für Webpack lautet wie folgt:
const path = require('path');module.exports = ,module: >>,]>>;
In dieser Datei verwenden wir das modulare CommonJS-System, um Module zu verbinden, und die require-Funktion zum Importieren von Paketen. Als nächstes exportieren wir ein Objekt, das alle Build-Parameter enthält:
- entry - gibt den Einstiegspunkt für Webpack an, an dem alle Projektabhängigkeiten behandelt werden.
- output - legt fest, wo und wie das Erstellungsergebnis exportiert wird. In diesem Fall werden alle Dateien in einem Verzeichnis gespeichert dist und die Hauptdatei wird aufgerufen bundle.js.
- module - enthält eine Reihe von Regeln, die festlegen, welche Bootloader für die Verarbeitung verschiedener Dateitypen verwendet werden sollen. In diesem Beispiel verwenden wir Bootloader babel-loader für die Verarbeitung von JavaScript-Dateien und style-loader und css-loader um CSS-Dateien zu verarbeiten.
Das Erstellen einer Konfigurationsdatei für Webpack ermöglicht es uns, den Prozess zum Erstellen und Kompilieren von JavaScript- und CSS-Dateien vollständig anzupassen und andere notwendige Parameter hinzuzufügen, z. B. für die Verarbeitung von Bildern oder Schriftarten. Dies macht die Arbeit mit Webpack flexibler und bequemer.
Arbeiten mit Modulen in Webpack
Webpack bietet leistungsstarke Tools für die Arbeit mit Modulen in einem Projekt. Es ermöglicht Ihnen, verschiedene JavaScript-Module, CSS, Bilder und andere Ressourcen in einem bereitgestellten Paket zu sammeln und zu kombinieren.
Um mit den Modulen in Webpack zu beginnen, müssen Sie eine Konfigurationsdatei konfigurieren, die die Pfade zu den Projektein- und Ausgabedateien sowie die Loader und Plug-Ins für die Verarbeitung der Module anzeigt.
Webpack unterstützt CommonJS und AMD -Module und ermöglicht auch die Verwendung der neuen ECMAScript-Modulsyntax (ESM) mit Babel.
Um Module in eine JavaScript-Datei zu importieren, können Sie eine spezielle Import-Syntax verwenden, z. B.:
import module from './module';
Webpack löst den Modulpfad automatisch auf und verbindet ihn mit der Assembly. Wenn das Modul eine JavaScript-Datei ist, wird es ausgeführt und die exportierten Werte sind in der Variablen module verfügbar.
Module können auch mit dem Schlüsselwort export exportiert werden, z. B.:
// module.js
export const value = 42;
// index.js
import < value >from './module';
In diesem Beispiel wird die value-Konstante aus dem Modul module exportiert.js und wird in eine Index-Datei importiert.js .
Mit Webpack können Sie auch mit CSS-Modulen, Bildern, Schriftarten und anderen Dateitypen arbeiten. Sie können spezielle Loader verwenden, um ein CSS-Modul in ein Projekt einzubinden, z. B. style-loader und css-loader :
Webpack verarbeitet die importierten Stile automatisch und fügt sie der Baugruppe hinzu. Sie können auch mit Bildern arbeiten:
import image from './image.png';
Webpack erkennt automatisch den Dateityp, verarbeitet ihn und fügt ihn der Assembly hinzu.
So ermöglicht die Arbeit mit Modulen in Webpack die effiziente Organisation und Strukturierung des Projektcodes sowie die einfache Handhabung verschiedener Ressourcentypen.
Hochladen und Verarbeiten verschiedener Dateitypen in Webpack
Um mit verschiedenen Dateitypen in einem Projekt problemlos arbeiten zu können, bietet Webpack die Möglichkeit, Dateien in verschiedenen Formaten hochzuladen und zu verarbeiten. Dies ermöglicht die Verwendung von Dateitypen wie Bildern, Schriftarten, Stilen und mehr in der Projektstruktur.
Webpack bietet für jeden Dateityp verschiedene Loader (loaders) an, die in der Konfigurationsdatei konfiguriert werden können. Einige der beliebtesten Downloader sind:
- file-loader - downloader zum Verarbeiten und Kopieren von Dateien wie Bildern, Videos, Audio und anderen.
- url-loader - ein Loader, der dem file-loader ähnelt, aber auch kleinere Dateien als Daten-URL einbezieht.
- css-loader - ein Bootloader für die Verarbeitung von CSS-Dateien, mit dem Sie CSS-Dateien in das JavaScript-Modul importieren können.
- sass-loader - ein Loader für die Verarbeitung von SASS/SCSS-Dateien, der sie in CSS kompiliert.
- babel-loader - ein Downloader zum Transpilieren von JavaScript-Dateien, die mit modernen Sprachfunktionen geschrieben wurden, mit Babel.
Alle diese Bootloader können kombiniert und angepasst werden, um die gewünschte Funktionalität zu erhalten. Sie können beispielsweise file-loader so konfigurieren, dass alle Bilder kopiert werden, url-loader, um kleine Bilder als Daten-URL einzuschließen, css-loader und sass-loader, um Stildateien zu verarbeiten, und so weiter.
Die Bootloader werden über die Webpack-Konfigurationsdatei mit dem Projekt verbunden. Für jeden Bootloader müssen Sie eine entsprechende Einstellung angeben, mit der Sie festlegen können, wie Dateien eines bestimmten Typs behandelt werden sollen.
Bootloader sind ein wichtiger Teil der Arbeit mit Webpack, da sie eine Vielzahl von Dateitypen in einem Projekt effizient verwalten und verwenden können, wodurch es flexibler und skalierbarer wird.
Optimieren der Dateigröße in Webpack
1. Code-Minimierung: Die Minimierung besteht darin, alle unnötigen Zeichen aus dem Quellcode zu entfernen, z. B. Leerzeichen, Kommentare und Zeilenumbrüche. Dadurch können Sie die Dateigröße reduzieren und die Download-Geschwindigkeit verbessern. In Webpack können Sie das terser-webpack-plugin verwenden, um den Code zu minimieren.
2. Trennung des Codes: Wenn Sie den Code in Module aufteilen, können Sie die Dateigröße reduzieren und das Laden optimieren. Webpack bietet die Möglichkeit, den Code automatisch mit den Plugins SplitChunksPlugin und Dynamic Import zu teilen.
3. Kompression verwenden: Durch Komprimieren von Dateien können Sie ihre Größe reduzieren, wenn sie auf die Clientseite geladen werden. Sie können das CompressionWebpackPlugin-Plugin in Webpack verwenden, um dies zu tun.
4. Lazy Loading: Mit Lazy Loading können Sie nur die Dateien herunterladen, die Sie auf der aktuellen Seite benötigen. Dies hilft, die Anwendungsinitialisierung zu beschleunigen und die Menge der übertragenen Daten zu reduzieren. In Webpack können Sie Dynamic Import zum faulen Laden verwenden.
5. Tree shaking: Tree shaking ist ein Mechanismus zum selektiven Zusammenbau von Komponenten, mit dem Sie ungenutzten Code beim Zusammenbau entfernen können. Webpack wendet automatisch tree shaking an, wenn ES6-Module verwendet werden.
6. Optimierte Formate verwenden: Für Bilder, Schriftarten und andere statische Ressourcen können Sie optimierte Formate wie WebP für Bilder oder WOFF2 für Schriftarten verwenden. Dies kann die Größe der Dateien erheblich reduzieren und das Herunterladen beschleunigen.
Abhängig von den spezifischen Projektanforderungen können Sie verschiedene Kombinationen dieser Strategien anwenden, um die Dateigröße in Webpack zu optimieren. Die Optimierung der Dateigröße ist ein wichtiger Bestandteil des Entwicklungsprozesses für Webanwendungen, da sie sich auf die Download-Geschwindigkeit und die Leistung der Anwendung auf verschiedenen Geräten auswirkt.
Erstellen verschiedener Assemblys mit Webpack
Eine der Besonderheiten von Webpack ist die Möglichkeit, verschiedene Konfigurationen für verschiedene Baugruppen Ihres Projekts zu erstellen. Sie können beispielsweise eine Konfiguration für die Entwicklung erstellen, in der Sie Debugging-Tools und unkomprimierte Dateien verwenden können, und eine Konfiguration für einen Produktions-Build, in dem alle Ressourcen komprimiert und optimiert werden.
Um verschiedene Assemblys mit Webpack zu erstellen, müssen Sie für jede Assembly eine separate Konfigurationsdatei erstellen. In dieser Datei konfigurieren Sie verschiedene Parameter wie den Einstiegspunkt, den Pfad zu den Build-Dateien, Optimierungen und vieles mehr.
Beispiel zum Erstellen einer Konfiguration für die Entwicklung:
const path = require('path');module.exports = ,devtool: 'inline-source-map',module: ]>>;
Beispiel zum Erstellen einer Konfiguration für eine Produktionsbaugruppe:
const path = require('path');const MiniCssExtractPlugin = require('mini-css-extract-plugin');const TerserPlugin = require('terser-webpack-plugin');module.exports = ,optimization: ,plugins: [new MiniCssExtractPlugin()],module: ]>>;
Beide obigen Beispiele verwenden einen Einstiegspunkt. "/src/index.js", die Build-Dateien werden im Ordner "dist" gespeichert und die verschiedenen Ressourcen werden mit den entsprechenden Loadern oder Plugins verarbeitet.
Durch das Erstellen verschiedener Builds mit Webpack können Sie Ihre Entwicklung flexibler und effizienter gestalten. Sie können verschiedene Konfigurationen für verschiedene Verwendungsszenarien Ihres Projekts erstellen und ihre Einstellungen und Einstellungen bei Bedarf einfach ändern.
Hinzufügen von Plugins zu Webpack
Plug-Ins in Webpack bieten leistungsstarke Tools zum Erweitern und Anpassen des Builds eines Projekts. Sie ermöglichen es Ihnen, verschiedene Aufgaben zu automatisieren, den Code zu optimieren und zusätzliche Funktionen hinzuzufügen.
Um Plugins in Webpack zu verwenden, müssen Sie diese zur Webpack-Konfigurationsdatei hinzufügen.config.js mit der plugins-Eigenschaft. Jedes Plugin ist eine Instanz einer Klasse, die bestimmte Parameter akzeptiert.
Hier ist ein Beispiel für eine Webpack-Konfiguration mit mehreren gängigen Plugins:
const HtmlWebpackPlugin = require('html-webpack-plugin');const MiniCssExtractPlugin = require('mini-css-extract-plugin');const < CleanWebpackPlugin >= require('clean-webpack-plugin');module.exports =/ остальная конфигурация Webpackplugins: [new HtmlWebpackPlugin( ),new MiniCssExtractPlugin(),new CleanWebpackPlugin(),],>;
Im obigen Beispiel werden drei Plugins verwendet: HtmlWebpackPlugin , MiniCssExtractPlugin und CleanWebpackPlugin .
HtmlWebpackPlugin generiert eine HTML-Datei basierend auf der angegebenen Vorlage, ersetzt die generierten Ressourcen (Skripte, Stile) darin und verwaltet das Caching. Dieses Plugin ist besonders nützlich bei der Entwicklung von mehrseitigen Webanwendungen.
MiniCssExtractPlugin extrahiert den CSS-Code aus JavaScript-Dateien und speichert ihn in separaten Dateien. Dadurch können Sie den Styling-Prozess besser verwalten und den Browser für die Style-Dateien optimieren.
CleanWebpackPlugin löscht den Ausgabeordner vor jedem Build des Projekts. Dies ist nützlich, wenn Sie frühere Builds löschen möchten, um zu vermeiden, dass sich alte Dateien ansammeln.
Neben diesen Plugins gibt es in Webpack viele andere, die verschiedene Aufgaben lösen: Optimieren von Bildern, Generieren von Einstellungsdateien, Arbeiten mit APIs und vieles mehr. Sie können die gewünschten Plugins basierend auf den Anforderungen Ihres Projekts auswählen oder Ihr eigenes Plugin entwickeln.
| Plugin | Die Beschreibung |
|---|---|
| HtmlWebpackPlugin | Generiert HTML-Dateien basierend auf der angegebenen Vorlage |
| MiniCssExtractPlugin | Extrahiert den CSS-Code aus JavaScript-Dateien und speichert ihn in separaten Dateien |
| CleanWebpackPlugin | Löscht den Ausgabeordner vor jedem Erstellen des Projekts |
Alle im Projekt verwendeten Plugins müssen über npm oder yarn mit dem Befehl npm install oder yarn add installiert werden.
Durch das Hinzufügen von Plugins zu Webpack können Sie die Funktionen erheblich erweitern und das Erstellen eines Projekts effizienter und benutzerfreundlicher gestalten.
Arbeiten mit dem Dev-Server in Webpack
Die Webentwicklung erfordert häufig häufige Änderungen am Code und Validierung der Ergebnisse in Echtzeit. Um diese Aufgabe zu vereinfachen, können Sie den Dev-Server in Webpack verwenden.
Ein Dev-Server ist ein spezieller Server, mit dem Sie Ihre zu entwickelnde Webseite lokal auf dem Computer ausführen können. Dadurch können Sie Änderungen im Code sofort sehen, ohne die Seite jedes Mal manuell im Browser aktualisieren zu müssen.
Um mit dem Dev-Server in Webpack arbeiten zu können, müssen Sie das Paket webpack-dev-server mit dem npm-Paketmanager installieren. Führen Sie zum Installieren den folgenden Befehl aus:
- npm install webpack-dev-server --save-dev
Nach der Installation können Sie der Webpack-Datei eine Dev-Server-Konfiguration hinzufügen.config.js. Eine Beispielkonfiguration könnte wie folgt aussehen:
const path = require('path');module.exports = ,devServer: ,>;
Hier geben wir dem Dev-Server den Ordner mit dem Inhalt an, den er geben wird. In diesem Fall ist dies der Ordner "dist".
Nachdem Sie die Konfiguration hinzugefügt haben, können Sie den Dev-Server mit dem Befehl starten:
Nachdem der Server gestartet wurde, können Sie Ihre Webseite in einem Browser öffnen, indem Sie die URL eingeben http://localhost:8080 . Wenn Sie nun Änderungen am Code vornehmen und die Dateien speichern, wird die Seite automatisch aktualisiert.
Der Dev-Server unterstützt auch andere nützliche Chips wie hot reloading (Hot Reloading), mit dem Sie den Status Ihrer Anwendung beibehalten können, wenn Sie nur die benötigten Dateien ändern. Dies beschleunigt den Entwicklungsprozess und ermöglicht es Ihnen, die Ergebnisse der Änderungen sofort zu sehen.
Deploy-Anwendungen mit Webpack
Nachdem Sie Ihre Anwendung erstellt und das Webpack so konfiguriert haben, dass sie erstellt wird, ist es an der Zeit, Ihre Anwendung auf den Server zu deponieren. Das Deploy einer Anwendung bedeutet, dass sie an einem zugänglichen Ort platziert wird, damit Benutzer über das Internet darauf zugreifen können.
Bevor Sie mit dem Deploy beginnen, ist es wichtig sicherzustellen, dass Sie eine optimierte Version Ihrer Anwendung erstellt haben. Wenden Sie dazu Optimierungen mit Webpack an, z. B. Dateiminimierung und -komprimierung. Dadurch wird die Größe der Dateien reduziert und das Laden der Anwendung im Browser beschleunigt.
Für das Deploy benötigen Sie einen Hosting-Provider, der Serverraum zur Verfügung stellt und das Hosting statischer Dateien unterstützt. Sie können Plattformen wie Netlify, Vercel oder GitHub Pages zum Deploy Ihrer Anwendung verwenden.
Um Ihre Anwendung mit Webpack zu blockieren, können Sie die folgenden Schritte ausführen:
- Erstellen Sie ein Projekt auf einem Hosting-Anbieter und greifen Sie auf den Server zu.
- Kopieren Sie die gesammelten Dateien Ihrer Anwendung (dies sind normalerweise Dateien im Ordner `dist`, nachdem Sie den Befehl `npm run build` ausgeführt haben).
- Übertragen Sie die Dateien mithilfe von Dateiübertragungstools wie FTP oder SSH auf den Server.
- Passen Sie die Dateien bei Bedarf an, indem Sie den Pfad zum Einstiegspunkt Ihrer Anwendung und andere Einstellungen angeben (z. B. `index.html`).
- Starten Sie den Server bei Bedarf neu.
- Überprüfen Sie, ob Ihre App erfolgreich blockiert wurde, indem Sie sie in einem Browser an der angegebenen Adresse öffnen.
Abhängig vom Hosting-Anbieter und den verwendeten Tools können sich die Deploy-Schritte geringfügig unterscheiden. Befolgen Sie daher die Dokumentation Ihres Anbieters und beachten Sie die Sicherheitsempfehlungen beim Deploy der Anwendung.
Glückwunsch! Ihre App ist jetzt online verfügbar und kann von anderen Benutzern verwendet werden.