2016-01-16 28 views
8

です。初めてWebpackを試しています。私はしばらくの間、BrowserifyでGulpを使用していて、かなり快適です。この時点で、私はWebpackプラグインのいくつかをテストしています。すなわち、compress-webpack-pluginです。私は決して前に圧縮を使ったことがないので、もし私が何かの間違いをしているなら、私と一緒に裸にしてください。Webpack gzip圧縮バンドルが提供されていない、圧縮されていないバンドルは

以下は私のwebpack.config.jsです。その結果、main.js、main.js.gz、main.css、およびindex.htmlが取得されます。 main.jsはindex.htmlに挿入されていますが、ブラウザでindex.htmlを開くと、圧縮されたmain.js.gzではなく、圧縮されていないmain.jsが提供されます。私は、スクリプトタグに.gz拡張子を含める必要はなく、html-webpack-pluginにはそれが含まれていないことを読んだので、正しく動作していると思っていましたが、圧縮されていないmain.jsが提供され、圧縮されたものよりむしろ。

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() 
    ] 
}; 

答えて

10

script -tagに含まmain.jsの場合にmain.js.gz代わりのmain.jsをロードするには、あなたが.js.gzをロードする必要があり、その構成を覚えておいてください(などのApache、nginxの、)あなたのWebサーバ

を設定する必要がありますか.jsブラウザがgzipを受け入れるかどうかによって異なります。 WebサーバーはHTTPリクエストヘッダーで確認できますAccept-Encoding: gzip, deflate

ブラウザのdevtoolsでは、どのような場合でもmain.jsが表示されます。

+0

PRE-zipped(生成されていない)ファイルをロードするには、IIで何をすべきですか? –

+0

@RoyiNamir書き換えルールを書く必要があります –

+0

jsファイル用にgzファイルを提供するための適切なルールが見つかりませんでした –

4

nginx gzip static moduleで条件付きで簡単にgzの統計情報を提供できます。サーバは、たとえばapp.js.gzファイルがあるかどうかをチェックする。要求された/statics/app.jsが存在し、それを透過的に提供する。あなたのアプリケーションを変更するか、Accept-Encodingを検出する必要はありません - それらはすべてnginxモジュールによって処理されます。ここに設定スニペットがあります:

location /statics/ { 
    gzip_static on; 
} 
0

私はこのスレッドに少し遅れていますが、私は2cを追加すると思います。 webpackを使用してgzファイルを生成しましたが、Accept-Encodingが正しく設定されているにもかかわらず、Apacheは圧縮されていないファイルを提供し続けました。私はAddEncoding x-gzip .gz .tgzをコメント解除し、httpdをリロードしなければならなかったことが分かります。記録のために、AddType application/x-gzip .gz .tgzが既に設定されていて、私はChrome64でApache 2.4.6を使用しています。私のconf/httpd.confファイルを調べるために上記のドミトリーに感謝します。

関連する問題