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