Prepare Brotli or Gzip-compressed versions of assets to serve them different content encodings
npm install brotli-gzip-webpack-plugin
npm install --save-dev brotli-gzip-webpack-plugin
`
Usage
` javascript
var BrotliGzipPlugin = require('brotli-gzip-webpack-plugin');
module.exports = {
plugins: [
new BrotliGzipPlugin({
asset: '[path].br[query]',
algorithm: 'brotli',
test: /\.(js|css|html|svg)$/,
threshold: 10240,
minRatio: 0.8
}),
new BrotliGzipPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: /\.(js|css|html|svg)$/,
threshold: 10240,
minRatio: 0.8
})
]
}
`
Arguments:
* asset: The target asset name. Defaults to '[path].br[query]'.
* [file] is replaced with the original asset file name.
* [fileWithoutExt] is replaced with the file name minus its extension, e.g. the style of style.css.
* [ext] is replaced with the file name extension, e.g. the css of style.css.
* [path] is replaced with the path of the original asset.
* [query] is replaced with the query.
* test: All assets matching this RegExp are processed. Defaults to every asset.
* threshold: Only assets bigger than this size (in bytes) are processed. Defaults to 0.
* minRatio: Only assets that compress better that this ratio are processed. Defaults to 0.8.
Optional arguments for Brotli (see iltorb doc for details):
* mode: Default: 0,
* quality: Default: 11,
* lgwin: Default: 22,
* lgblock: Default: 0,
* enable_dictionary: Default: true,
* enable_transforms: Default: false,
* greedy_block_split: Default: false,
* enable_context_modeling`: Default: false