Prepare compressed versions of assets to serve them with Content-Encoding
npm i -D compression-webpack-plugin
webpack.config.js
const CompressionPlugin = require("compression-webpack-plugin") module.exports = { plugins: [ new CompressionPlugin(...options) ] }
Name | Type | Default | Description |
---|---|---|---|
{RegExp|Array<RegExp>} |
. |
All assets matching this {RegExp|Array<RegExp>} are processed |
|
{RegExp|Array<RegExp>} |
undefined |
Files to include |
|
{RegExp|Array<RegExp>} |
undefined |
Files to exclude |
|
{Boolean|String} |
false |
Enable file caching |
|
{String} |
[path].gz[query] |
The target asset name. [file] is replaced with the original asset. [path] is replaced with the path of the original asset and [query] with the query |
|
{Function} |
false |
A {Function} (asset) => asset which receives the asset name (after processing asset option) and returns the new asset name |
|
{String|Function} |
gzip |
Can be (buffer, cb) => cb(buffer) or if a {String} is used the algorithm is taken from zlib |
|
{Number} |
0 |
Only assets bigger than this size are processed. In bytes. |
|
{Number} |
0.8 |
Only assets that compress better than this ratio are processed |
|
{Boolean} |
false |
Whether to delete the original assets or not |
##
webpack.config.js
[ new CompressionPlugin({ test: /\.js/ }) ]
include
webpack.config.js
[ new CompressionPlugin({ include: /\/includes/ }) ]
exclude
webpack.config.js
[ new CompressionPlugin({ exclude: /\/excludes/ }) ]
cache
webpack.config.js
[ new CompressionPlugin({ cache: true }) ]
asset
webpack.config.js
[ new CompressionPlugin({ asset: '[path].gz[query]' }) ]
filename
webpack.config.js
[ new CompressionPlugin({ filename (asset) { asset = 'rename' return asset } }) ]
algorithm
webpack.config.js
[ new CompressionPlugin({ algorithm: 'gzip' }) ]
threshold
webpack.config.js
[ new CompressionPlugin({ threshold: 0 }) ]
minRatio
webpack.config.js
[ new CompressionPlugin({ minRatio: 0.8 }) ]
deleteOriginalAssets
webpack.config.js
[ new CompressionPlugin({ deleteOriginalAssets: true }) ]
Joshua Wiens |
Juho Vepsäläinen |
Michael Ciniawsky |
Alexander Krasnoyarov |
© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://webpack.js.org/plugins/compression-webpack-plugin