In diesem Artikel wird WebPack untersucht - einen leistungsstatischen statischen Modulpacker, der Webentwicklungs -Workflows vereinfacht und optimiert. Obwohl die Webpack -Dokumentation detailliert ist, k?nnen Anf?nger immer noch vor dem Problem einer steilen Lernkurve konfrontiert sind. Dieses Tutorial soll Ihnen helfen, die Kernkonzepte von Webpack zu beherrschen und Sie Schritt für Schritt durch praktische Vorg?nge zu führen.
Kernpunkte:
- Webpack -Grundlagen: WebPack behandelt alle Dateien und Ressourcen als Module, erstellt Abh?ngigkeitsgrafiken und generiert eine oder mehrere Bündel für die Webbereitstellung.
- übersicht über Kernkonzepte: Einstellungen für die Eingabe, Ausgabe, Lader, Plugins und Modus in verschiedenen Umgebungen (Entwicklung, Produktion) verwenden Webpack effektiv.
- Webpack 5 -Verbesserungen: Edition 5 führt Funktionen wie persistentes Cache, verbessertes Baumschütteln und L?schen von automatischen Knoten ein, um die Leistung zu verbessern und die Bündelgr??e zu reduzieren.
- Anf?nger von WebPack: WebPack-Projekt starten Sie, indem Sie grundlegende Konfigurationsdateien einstellen, die Standardeinstellungen verstehen und Plug-Ins wie
html-webpack-plugin
verwenden, um die dynamische HTML-Erzeugung durchzuführen. - Erweiterte Verwendung: Lernen Sie,
style-loader
undcss-loader
zu verwenden, um CSS zu verarbeiten, integrierte Module zum Ersetzen von alten Ladern zum Verwalten von Ressourcen und verwenden Optimieren Sie den Entwicklungsprozess. - Best Practices für Produktionsumgebungen: Verwenden Sie die Funktionen von Webpack, um moderne JavaScript zu transformieren, Stile und Ressourcen zu verwalten und die Entwicklung mithilfe von Tools wie
webpack-dev-server
und Optimierungen für die Produktionsversion zu beschleunigen.
Was ist Webpack?
Der Kern von Webpack ist ein statischer Modulpacker. In einem bestimmten Projekt behandelt WebPack alle Dateien und Ressourcen als Module und stützt sich auf ein Abh?ngigkeitsgraphen. Dieses Abh?ngigkeitsdiagramm beschreibt, wie Module durch Referenzen (require
und import
Anweisungen) zwischen den Dateien miteinander zugeordnet werden. Webpack iteriert statisch alle Module, um das Diagramm zu erstellen, und generiert es, um ein einzelnes Bundle (oder mehrere Bündel) zu generieren - eine JavaScript -Datei, die Code aus allen Modulen enth?lt und in der richtigen Reihenfolge kombiniert wird. "Statisch" bedeutet, dass WebPack seine Abh?ngigkeitsgrafik nicht ausführt, sondern den Quellcode nicht ausführt, sondern die Module und ihre Abh?ngigkeiten zu einem Bündel kombiniert. Sie k?nnen es dann in Ihre HTML -Datei aufnehmen.
Webpack Hauptkonzepte:
Bevor wir zutiefst üben, müssen wir einige der Hauptkonzepte von Webpack klar verstehen:
- Eintrag: Einstiegspunkt ist das Modul -Webpack, mit dem er mit dem Erstellen seines internen Abh?ngigkeitsdiagramms beginnt. Von dort bestimmt es andere Module und Bibliotheken (direkt und indirekt), von denen der Einstiegspunkt abh?ngt und sie in die Grafik enth?lt, bis keine verbleibenden Abh?ngigkeiten vorhanden sind. Standardm??ig wird die Eigenschaft
entry
auf./src/index.js
gesetzt, aber wir k?nnen in der Webpack -Konfigurationsdatei verschiedene Module (oder sogar mehrere Module) angeben. - Ausgabe:
output
Attribut zeigt an, wo das Webpack das Bundle ausgibt und den Namen für die Datei verwendet werden. Die Standardwerte für diese Eigenschaft sind./dist/main.js
des Hauptbündels und./dist
für andere generierte Dateien (wie z. B. Bilder). Natürlich k?nnen wir nach Bedarf unterschiedliche Werte in der Konfiguration angeben. - lader: standardm??ig versteht WebPack nur JavaScript- und JSON -Dateien. Um andere Arten von Dateien zu verarbeiten und in gültige Module umzuwandeln, verwendet WebPack einen Loader. Der Loader konvertiert den Quellcode von Nicht-JavaScript-Modulen, sodass wir diese Dateien vorverarbeiten k?nnen, bevor wir sie zum Abh?ngigkeitsdiagramm hinzufügen. Beispielsweise kann ein Loader Dateien von Coffeescript -Sprache in JavaScript umwandeln oder Inline -Bilder in Daten -URLs konvertieren. Mit dem Loader k?nnen wir sogar CSS -Dateien direkt aus dem JavaScript -Modul importieren.
- Plugins: Plugins werden für andere Aufgaben verwendet, die der Lader nicht ausführen kann. Sie bieten uns eine breite Palette von L?sungen für das Ressourcenmanagement, die Minimierung und Optimierung von Bündeln und vieles mehr.
- Modus: Wenn wir eine Anwendung entwickeln, verwenden wir normalerweise zwei Arten von Quellcode - eine für die Entwicklung der Entwicklung und einen für die Produktionsversionsbildung. Mit WebPack k?nnen wir die Version festlegen, die generiert werden soll, indem der Parameter
mode
aufdevelopment
,production
odernone
ge?ndert wird. Auf diese Weise kann WebPack integrierte Optimierungen verwenden, die jeder Umgebung entsprechen. Der Standardwert istproduction
.none
Modus bedeutet, dass keine Standardoptimierungsoptionen verwendet werden.
Wie funktioniert Webpack:
Auch ein einfaches Projekt enth?lt HTML-, CSS- und JavaScript -Dateien. Darüber hinaus kann es auch Ressourcen wie Schriftarten, Bilder usw. enthalten. Ein typischer Webpack -Workflow umfasst daher das Einrichten index.html
Dateien mit geeigneten CSS- und JS -Links und erforderlichen Ressourcen. Wenn Sie viele voneinander abh?ngige CSS- und JS -Module haben, müssen Sie sie optimieren und ordnungsgem?? zu einer Einheit kombinieren, die für die Produktion bereit ist.
Um all dies zu tun, basiert WebPack auf die Konfiguration. Beginnend mit Version 4 und sp?ter bietet WebPack angemessene Standardwerte au?erhalb des Feldes, sodass keine Konfigurationsdateien erforderlich sind. Für jedes nicht einfache Projekt müssen Sie jedoch eine spezielle webpack.config.js
-Datei bereitstellen, in der beschrieben wird, wie Dateien und Ressourcen konvertiert werden und welche Art von Ausgabe generiert werden soll. Diese Datei kann schnell riesig werden, was es schwierig macht zu verstehen, wie Webpack funktioniert, es sei denn, Sie verstehen die Hauptkonzepte, die dahinter funktionieren.
Basierend auf der bereitgestellten Konfiguration startet WebPack am Einstiegspunkt und analysiert jedes Modul, auf das es beim Erstellen des Abh?ngigkeitsdiagramms begegnet ist. Wenn das Modul Abh?ngigkeiten enth?lt, wird dieser Vorgang für jede Abh?ngigkeit rekursiv durchgeführt, bis der Traversal abgeschlossen ist. Webpack bündelt dann die Module aller Projekte in eine kleine Anzahl von Bündeln (normalerweise nur eine), damit der Browser geladen werden kann.
Neue Funktionen von Webpack 5:
Webpack 5 wurde im Oktober 2020 ver?ffentlicht. Die Ankündigung ist lang und untersucht alle ?nderungen an WebPack. Es ist unm?glich, alle ?nderungen zu erw?hnen, und es ist auch für solche Anf?nger -Führer wie diese nicht erforderlich. Stattdessen werde ich versuchen, einige allgemeine Punkte aufzulisten:
- Verwenden Sie den anhaltenden Cache, um die Build -Leistung zu verbessern. Entwickler k?nnen nun Dateisystem-basierte Caching aktivieren, was die Entwicklung beschleunigt und baut.
- langfristiges Caching wurde ebenfalls verbessert. In WebPack 5 verursachen ?nderungen an Code (Kommentare, Variablennamen), die die minimierte Bundle -Version nicht beeinflussen, keine Cache -Ungültigheit. Darüber hinaus werden neue Algorithmen hinzugefügt, die Modulen und Bl?cken kurze numerische IDs auf deterministische Weise und kurze Namen dem Export zuweisen. In WebPack 5 sind sie standardm??ig im Produktionsmodus aktiviert.
- Bündelgr??e wurde aufgrund eines besseren Baumschüttelns und der Codeerzeugung verbessert. Dank der neuen verschachtelten Tree Shaking -Funktion kann WebPack jetzt den Zugriff auf Export -verschachtelte Eigenschaften verfolgen. Mit CommonJS -Baumschütteln k?nnen wir nicht verwendete CommonJS -Exporte beseitigen.
- Die minimal unterstützte Node.js -Version wurde von 6 auf 10.13.0 (LTS) erh?ht.
- Die Codebasis wurde gereinigt. Alle Elemente, die in Webpack 4 als veraltet markiert sind, entfernt.
- Automatische Knoten entfernen.js Polyfills. Frühere Versionen von Webpack enthalten Polyfills für native Node.js -Bibliotheken wie
crypto
. In vielen F?llen sind sie unn?tig und erh?hen die Bündelgr??e erheblich. Aus diesem Grund stoppt Webpack 5 diese Kernmodule automatisch und konzentriert sich auf Front-End-kompatible Module. - Als Verbesserung der Entwicklung erm?glicht WebPack 5 die Ziellisten und die Unterstützung von Zielversionen. Es bietet eine automatische Bestimmung des Zielwegs. Darüber hinaus bietet es eine automatische, eindeutige Benennung, die Konflikte zwischen mehreren Webpack -Laufzeiten verhindert, die dieselbe globale Variable für die Blockbelastung verwenden. Der Befehl
-
webpack-dev-server
lautet jetztwebpack serve
. - führt das Ressourcenmodul vor, das die Verwendung von
file-loader
,raw-loader
undurl-loader
ersetzt.
Anf?nger:
Jetzt haben wir eine solide theoretische Grundlage, lassen Sie es uns in der Praxis erkennen.
Erstens werden wir ein neues Verzeichnis erstellen und darauf wechseln. Dann werden wir ein neues Projekt initialisieren:
mkdir learn-webpack cd learn-webpack npm init -y
Als n?chstes müssen wir Webpack und Webpack CLI lokal installieren (Befehlszeilenschnittstelle):
npm install webpack webpack-cli --save-dev
Dann erstellen wir ein src
Verzeichnis und geben eine index.js
-Datei hinein, damit sie console.log("Hello, Webpack!");
enth?lt. Jetzt k?nnen wir die Aufgabe dev
ausführen, um WebPack im Entwicklungsmodus zu starten:
npm run dev
Wie bereits erw?hnt, legt WebPack den Standardeinstiegspunkt auf ./src/index.js
fest und legt die Standardausgabe auf ./dist/main.js
fest. Wenn wir also die Aufgabe dev
ausführen, erhalten Sie den Quellcode der index.js
-Datei und den endgültigen Code in die main.js
-Datei.
Um zu überprüfen, ob wir die richtige Ausgabe erhalten, müssen wir die Ergebnisse im Browser anzeigen. Lassen Sie uns dazu eine dist
-Datei im Verzeichnis index.html
erstellen:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Getting Started With Webpack</title> </head> <body> <??> </body> </html>
Wenn wir die Datei in unserem Browser ?ffnen, sollten wir die "Hallo, Webpack!"
(Der folgende Inhalt wird aufgrund von Platzbeschr?nkungen kurz zusammengefasst, und die Kernschritte und Schlüsselcode -Snippets werden beibehalten. Bitte beachten Sie den Originaltext für das vollst?ndige Tutorial.)
Verwenden Sie HTML-Webpack-Plugin: Installieren und konfigurieren Sie das html-webpack-plugin
-Plosing-In, um index.html
Dateien automatisch zu generieren und zu aktualisieren, um eine manuelle ?nderung zu vermeiden.
Benutzerdefinierte Eingabe und Ausgabe: ?ndern Sie webpack.config.js
, passen Sie das Verzeichnis der Eintragsdatei und das Ausgabeverzeichnis und den Dateinamen an.
Konvertieren Sie das moderne JavaScript in ES5: babel-loader
, konfigurieren Sie webpack.config.js
, konvertieren Sie den ES6 -Code in ES5 -kompatiblen Code.
Verarbeitungsstile: installieren css-loader
und style-loader
, konfigurieren Sie in webpack.config.js
die CSS -Datei auf die Seite.
Ressourcenverwaltung: Verwenden Sie das integrierte asset/resource
-Modul in WebPack 5, um Ressourcen wie Bilder zu verarbeiten.
Verwenden Sie Webpack-Dev-Server, um die Entwicklung zu beschleunigen: Installieren und Konfigurieren von webpack-dev-server
, um das Nachladen von Echtzeit zu erreichen.
Reinigen Sie die Ausgabe: Verwenden Sie das Ausgangsverzeichnis clean-webpack-plugin
.
Schlussfolgerung:
Dieses Tutorial führt nur die Kernkonzepte von WebPack vor, die auch viele andere Funktionen, Plug-Ins und verschiedene Technologien bieten. Es wird empfohlen, dass Sie sich auf offizielle Dokumente und andere Lernressourcen beziehen, um weiter zu studieren.
Webpack FAQ (abgekürzte Version):
- Der Unterschied zwischen Webpack und anderen Modulpackern? WebPack verfügt über ein leistungsstarkes Plug-in-System, unterstützt mehrere Dateitypen und verfügt über Code-Segmentierungsfunktionen.
- Wie konfigurieren Sie WebPack für mehrere Umgebungen? Erstellen Sie verschiedene Konfigurationsdateien und verschmelzen Sie Konfigurationen mit
webpack-merge
. - Wie handelt es sich bei Webpack CSS? Verwenden Sie
style-loader
undcss-loader
. - Was ist der HOT -Modulersatz (HMR) in WebPack? Erm?glicht die Aktualisierung von Modulen zur Laufzeit, ohne die Seite vollst?ndig zu aktualisieren.
- Wie optimieren Sie die Konstruktion der Webpack -Produktionsversion? Codekomprimierung, Baumschütteln, Codesegmentierung usw.
- Wie benutze ich WebPack mit Babel? installieren
babel-loader
und konfigurieren. - Wie verwenden Sie WebPack mit TypeScript? installieren
ts-loader
oderawesome-typescript-loader
. - Wie verwendet ich Webpack, um Bilder zu verarbeiten? Verwenden Sie
file-loader
oderurl-loader
(WebPack 5 verwendet Verm?gensmodule). - Wie benutze ich WebPack mit React? Verwenden Sie
babel-loader
, um JSX zu verarbeiten, Sie k?nnenreact-hot-loader
verwenden. - Wie debuggiere ich die Webpack -Konfiguration? Verwenden Sie die Optionen
debug
unddevtool
, um Fehlermeldungen und Stapelspuren anzuzeigen.
Ich hoffe, dieses abgekürzte Tutorial hilft Ihnen dabei, schnell mit Webpack zu beginnen. Weitere Informationen finden Sie im Originaltext.
Das obige ist der detaillierte Inhalt vonEin Anf?ngerleitfaden für Webpack. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

JavaScript-Array-integrierte Methoden wie .Map (), .filter () und .Reduce () k?nnen die Datenverarbeitung vereinfachen. 1) .Map () wird verwendet, um Elemente eins in eins um Neuarrays zu konvertieren; 2) .Filter () wird verwendet, um Elemente durch Bedingung zu filtern; 3) .Reduce () wird verwendet, um Daten als einzelner Wert zu aggregieren; Missbrauch sollte bei der Verwendung vermieden werden, was zu Nebenwirkungen oder Leistungsproblemen führt.

Die Ereignisschleife von JavaScript verwaltet asynchrone Vorg?nge, indem sie Call -Stapel, Webapis und Task -Warteschlangen koordinieren. 1. Der Anrufstack führt synchronen Code aus, und wenn er auf asynchrone Aufgaben begegnet, wird er zur Verarbeitung an Webapi übergeben. 2. Nachdem das Webapi die Aufgabe im Hintergrund abgeschlossen hat, wird der Rückruf in die entsprechende Warteschlange (Makroaufgabe oder Micro -Aufgabe) eingebaut. 3. Die Ereignisschleife prüft, ob der Anrufstapel leer ist. Wenn es leer ist, wird der Rückruf aus der Warteschlange herausgenommen und zur Ausführung in den Anrufstapel geschoben. V. 5. Das Verst?ndnis der Ereignisschleife hilft zu vermeiden, den Haupt -Thread zu blockieren und die Codeausführungsreihenfolge zu optimieren.

Ereignisblasen verbreiten sich vom Zielelement nach au?en zum Vorfahrknoten aus, w?hrend Ereignisfassungen sich von der ?u?eren Schicht nach innen zum Zielelement ausbreiten. 1. Ereignisblasen: Nach dem Klicken auf das untergeordnete Element l?st das Ereignis den H?rer des übergeordneten Elements nach oben aus. Nach dem Klicken auf die Schaltfl?che gibt es beispielsweise zuerst die untergeordnete und dann entzündete Eltern aus. 2. Ereigniserfassung: Stellen Sie den dritten Parameter auf True ein, so dass der H?rer in der Erfassungsstufe ausgeführt wird, z. B. das Ausl?sen des Capture -Listeners des übergeordneten Elements, bevor Sie auf die Schaltfl?che klicken. 3. Praktische Verwendungszwecke umfassen ein einheitliches Management von Ereignissen für Kinderelemente, Vorverarbeitung und Leistungsoptimierung von Abfangen. V.
