Heim  >  Artikel  >  Web-Frontend  >  Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen

Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen

WBOY
WBOYnach vorne
2022-08-09 15:22:011187Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Javascript, das hauptsächlich die Probleme im Zusammenhang mit der Echtzeitkompilierung von Webpack-Dev-Server vorstellt. Schauen wir uns das gemeinsam an. hoffe es hilft allen.

Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen

[Verwandte Empfehlungen: Javascript-Video-Tutorial, Web-Frontend]

Jedes Mal, wenn Sie den Code ändern, müssen Sie ihn neu packen, den Browser öffnen und aktualisieren, was sehr mühsam ist

Wir können webpackdevserver installieren und verwenden. Verbessern Sie diese Erfahrung

webpack-dev-server startet hauptsächlich einen HTTP-Server mit Express. Seine Hauptfunktion besteht darin, Ressourcendateien bereitzustellen. Darüber hinaus verwenden dieser HTTP-Server und -Client das WebSocket-Kommunikationsprotokoll. Nachdem die Originaldatei geändert wurde, kompiliert der Webpack-Dev-Server sie in Echtzeit, die endgültige kompilierte Datei wird jedoch nicht in den Zielordner ausgegeben, der das Original ist Konfiguration in unserer Ausgabe unten: Der dist-Ordner wird nach dem Packen generiert, aber das dist-Verzeichnis wird nicht mit dev-server generiert

output: {
        path: './dist/js',
        filename: 'bundle.js'
    }

Nach dem Starten des Dienstes werden Sie feststellen, dass das dist-Verzeichnis nicht mehr vorhanden ist Legen Sie die gepackten Module stattdessen in den Speicher, um die Geschwindigkeit zu erhöhen: npm install webpack-dev-server -D

Paket.json ändern:

Dann können Sie npm ausführen Führen Sie den Server in Zukunft aus. Starten Sie unseren Dienst. Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen

Konfigurieren Sie in webpack.config.js:

Domänenübergreifend: Beim gemeinsamen Debuggen werden Front-End und Back-End getrennt, und der direkte Datenabruf erfolgt domänenübergreifend . Nachdem wir online gegangen sind, können wir es mit Nginx weiterleiten. Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen

Anwendungsszenario: Wenn wir auf diese Schnittstellen zugreifen, treten domänenübergreifende Probleme auf. Früher haben wir den Antwortheader in server.js festgelegt, um domänenübergreifendes Arbeiten zu ermöglichen. Jetzt können Sie aber auch den devServer-Proxy verwenden.

1. Bereiten Sie den Knotendienst vor und erstellen Sie server.js im Projektstammverzeichnis:

Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen2. Konfigurieren Sie devServer in der Datei webpack.config:

?? Replacement (HMR: Hot Module Replacement) ist ein Modul, das mit dem Webpack geliefert wird und keine zusätzliche Installation erfordert. Konfigurieren Sie hmr:

1) Fügen Sie das Webpack in den Header der Konfigurationsdatei webpack.config.js ein

const webpack = require("webpack");
Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen2) Fügen Sie es hinzu Plug-in-Konfiguration:

plugins: [
    new webpack.HotModuleReplacementPlugin()
]

3) Starten Sie hmr

Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen Die obige Konfiguration funktioniert nicht für js Hot Update. Die Seite wird beim Speichern trotzdem aktualisiert, um den Update-Effekt zu erzielen:

Wir haben zwei b.js und a.js-Dateienb geben 1 in .js zurück

Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen

a.js führt b.js ein und schreibt das Ausführungsergebnis der Daten b + eine Zahl auf die Seite

Im Eintragsdateiindex .js, führe einen ein, führe den NPM-Run-Server aus (unsere Hot-Update-Konfiguration bleibt unverändert)

Dann öffnen wir die Seite, ändern den Wert von b() + 1000 in a.js, dann Strg+S zum Speichern, und stellen Sie fest, dass die Seite aktualisiert wird, um den Wert zu aktualisieren. Dies ist offensichtlich nicht das, was wir sehen möchten. Bei Hot-Updates von js müssen wir die auszuführende Datei in der Eintragsdatei überwachen:

Eingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen

Speichern Sie nach dem Ändern des Werts in a.js, ohne die Seite zu aktualisieren. Der Wert wird ebenfalls angezeigt. Der zuletzt berechnete Wert wird auf der Seite angezeigt

Zusammenfassung: HMR unterstützt standardmäßig CSS-Hot-Updates, erfordert jedoch eine separate Überwachung für js

[Verwandte Empfehlungen: Javascript-Video-Tutorial, Web-Frontend]

Das obige ist der detaillierte Inhalt vonEingehende Analyse der devServer-Konfiguration, um Kompilierungsprobleme in Echtzeit zu lösen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:走看看. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen