Webpack gzip-komprimierte bundle nicht zugestellt wird, die unkomprimierte bundle
Ich versuche aus Webpack für die erste Zeit. Ich habe mit Gulp mit Browserify seit einiger Zeit und bin ziemlich zufrieden mit ihm. An diesem Punkt, ich Teste gerade ein paar Webpack plugins. Nämlich die Kompressions-webpack-plugin. Ich habe noch nie verwendet Kompression vor, so mit mir tragen, wenn ich irgendwelche noob-Fehler.
Unten ist meine webpack.config.js. Das Ergebnis ist bekomme ich eine main.js, main.js.gz main.css und index.html. Die main.js injiziert in die index.html aber wenn ich die öffnen index.html in meinem browser, es dient der unkomprimierten main.js nicht die komprimierte main.js.gz. Ich hatte gelesen, dass würde ich nicht müssen .gz Verlängerung in meinem script-tag, und die html-webpack-plugin nicht enthalten, so dass ich dachte, alles funktioniert richtig, noch der unkomprimierte main.js serviert wird, anstatt die komprimierte ein.
var path = require('path');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var HtmlWebpackPlugin = require('html-webpack-plugin');
var CompressionPlugin = require('compression-webpack-plugin');
module.exports = {
entry: './app/scripts/main.js',
output: {
path: path.join(__dirname, 'public'),
filename: '[name].js',
chunkFilename: '[id].js'
},
module: {
loaders: [
{test: /\.scss$/, exclude: /node_modules/, loader: ExtractTextPlugin.extract('style-loader', 'css-loader!sass-loader')},
{test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'}
]
},
plugins: [
new HtmlWebpackPlugin({
hash: true,
template: 'app/index.html',
inject: 'body'
}),
new ExtractTextPlugin('[name].css'),
new CompressionPlugin()
]
};
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laden
main.js.gz
stattmain.js
im Falle der enthaltenenmain.js
imscript
-tag, müssen Sie Ihre web-server (apache, nginx, etc.)Denken Sie daran, die Konfiguration laden soll
.js.gz
oder.js
hängt davon ab, ob der browser gzip akzeptiert. Web-server kann überprüfen es im HTTP-request-headerAccept-Encoding: gzip, deflate
In der browser-devtools sehen Sie main.js in allen Fällen.
Können Sie bedingt dienen
gz
Statik leicht mit nginx gzip-Modul statisch. Der server überprüft, obapp.js.gz
- Datei für z.B. angeforderte/statics/app.js
vorhanden ist, und dient es transparent. Es gibt keine Notwendigkeit, Ihre Anwendung ändern oder zu erkennenAccept-Encoding
- alle, die verarbeitet wird, durch das nginx-Modul. Hier ist die config snippet:Ich bin ein wenig spät zu diesem thread, aber dachte, ich würde meine 2c. Generiert ich eine gz-Datei mit webpack, aber Apache gehalten, dienen der unkomprimierten (oder erroring, wenn es nicht vorhanden), trotz
Accept-Encoding
korrekt eingestellt. Stellt sich heraus, ich hatte zu kommentierenAddEncoding x-gzip .gz .tgz
und reload httpd. Für den RekordAddType application/x-gzip .gz .tgz
wurde bereits eingestellt, und ich bin mit Apache 2.4.6 mit Chrom 62. Dank Dmitry oben stieß Sie mich auf meiner conf/httpd.conf-Datei.