Ich beginne webpack
mit einer node/express
Umgebung zu arbeiten, in der eine ReactJS
serverseitig gerenderte Anwendung entwickelt wird react-router
. Ich bin sehr verwirrt über die Rolle jedes Webpack-Pakets für Entwickler- und Produktumgebungen (Laufzeitumgebungen).
Hier ist die Zusammenfassung meines Verständnisses:
webpack
: Ist ein Paket, ein Tool, um verschiedene Teile einer Webanwendung zusammenzufügen und dann (normalerweise bundle.js
) in einer einzigen .js-Datei zu bündeln . Die Ergebnisdatei wird dann in einer Produktumgebung bereitgestellt, die von der Anwendung geladen werden soll, und enthält alle erforderlichen Komponenten, um den Code auszuführen. Zu den Funktionen gehören das Verkleinern von Code, das Minimieren usw.
webpack-dev-server
: Ist ein Paket, das einen Server zum Verarbeiten der Website-Dateien bietet . Es erstellt auch eine einzelne .js-Datei ( bundle.js
) aus Client-Komponenten, stellt sie jedoch im Speicher bereit . Es hat auch die Option ( -hot
), alle Gebäudedateien zu überwachen und bei Codeänderungen ein neues Bundle im Speicher zu erstellen. Der Server wird direkt im Browser bedient (zB :) http:/localhost:8080/webpack-dev-server/whatever
. Durch die Kombination aus Laden im Speicher, Hot-Processing und Browser-Serving kann der Benutzer die Anwendung im Browser aktualisieren, wenn sich der Code ändert. Dies ist ideal für die Entwicklungsumgebung.
Wenn ich Zweifel an dem obigen Text habe, bin ich mir über den Inhalt unten nicht sicher. Bitte teilen Sie mir dies gegebenenfalls mit
Ein häufiges Problem bei der Verwendung webpack-dev-server
mit node/express
ist, dass webpack-dev-server
es sich um einen Server handelt node/express
. Dies macht es in dieser Umgebung schwierig, sowohl den Client als auch einen Knoten- / Expresscode (eine API usw.) auszuführen. HINWEIS: Dies ist, was ich konfrontiert habe, aber es wäre toll zu verstehen, warum dies im Detail geschieht ...
webpack-dev-middleware
: Dies ist eine Middleware mit den gleichen Funktionen webpack-dev-server
(Speicherbündelung, Hot-Reloading), jedoch in einem Format, das in die server/express
Anwendung eingefügt werden kann . Auf diese Weise haben Sie eine Art Server (den webpack-dev-server
) Insider des Knotenservers. Ups: Ist das ein verrückter Traum ??? Wie kann dieses Stück die Dev- und Prod-Gleichung lösen und das Leben einfacher machen?
webpack-hot-middleware
: This ... Stuck here ... hat dieses Stück gefunden, als ich gesucht habe webpack-dev-middleware
... Keine Ahnung, wie man es benutzt.
ENDNOTE: Entschuldigung, es gibt ein falsches Denken. Ich brauche wirklich Hilfe, um diese Varianten in einer komplexen Umgebung zu verstehen. Wenn es Ihnen passt, fügen Sie bitte weitere Pakete / Daten hinzu, die das gesamte Szenario erstellen.
webpack-dev-middleware
(und möglicherweisewebpack-hot-middleware
) verwenden, wenn Sie Ihren eigenen benutzerdefinierten Entwicklungsserver schreiben möchten. Sofern Siewebpack-dev-server
keine bestimmte Funktion haben möchten, die Sie nicht haben, sollten Sie diese einfach verwenden.