Ich probiere Webpack zum ersten Mal aus. Ich benutze Gulp mit Browserify seit einiger Zeit und bin damit ziemlich zufrieden. An dieser Stelle teste ich gerade ein paar Webpack-Plugins aus. Nämlich das Compression-Webpack-Plugin. Ich habe noch nie zuvor eine Kompression benutzt, also sei mit mir fertig, wenn ich irgendeinen Noob-Fehler mache.
Unten ist meine webpack.config.js. Das Ergebnis ist eine Main.js, main.js.gz, main.css und index.html. Die main.js wird in die index.html eingefügt, aber wenn ich index.html in meinem Browser öffne, liefert sie die unkomprimierte main.js, nicht die komprimierte main.js.gz. Ich hatte gelesen, dass ich die .gz-Erweiterung nicht in mein Skript-Tag einfügen müsste, und das html-webpack-plugin enthält es nicht, also dachte ich, dass die Dinge richtig funktionieren, aber die unkomprimierte main.js wird bedient. anstatt der komprimierten.
%Vor% Um main.js.gz
anstelle von main.js
zu laden, müssen Sie Ihren Webserver (apache, nginx, etc.) konfigurieren, falls main.js
in script
-Tag enthalten ist.
Denken Sie daran, dass die Konfiguration .js.gz
oder .js
laden sollte, wenn der Browser gzip akzeptiert. Der Webserver kann dies im HTTP-Request-Header Accept-Encoding: gzip, deflate
In Browser Devtools sehen Sie in jedem Fall main.js.
Sie können gz
statics einfach mit statischem Modul nginx gzip bereitstellen. Der Server prüft, ob app.js.gz
file für z.B. angefordert /statics/app.js
ist vorhanden und dient es transparent. Es besteht keine Notwendigkeit, Ihre Anwendung zu ändern oder Accept-Encoding
zu erkennen - alles, was vom nginx-Modul gehandhabt wird. Hier ist Config Snippet:
Ich bin etwas spät dran, dachte aber, ich würde meine 2c hinzufügen. Ich generierte eine gz-Datei mit webpack, aber Apache servierte weiterhin die unkomprimierte (oder Fehler, wenn sie nicht vorhanden war), obwohl Accept-Encoding
richtig gesetzt wurde. Es stellte sich heraus, dass ich AddEncoding x-gzip .gz .tgz
auskommentieren und httpd neu laden musste. Für die Aufzeichnung, AddType application/x-gzip .gz .tgz
wurde bereits festgelegt, und ich verwende Apache 2.4.6 mit Chrome 62. Dank Dmitry oben für mich stupsen, um meine conf / httpd.conf-Datei zu sehen.
Tags und Links javascript html webpack compression gzip