node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »

compression-webpack-plugin

npm node deps test coverage chat

Compression Plugin

Prepare compressed versions of assets to serve them with Content-Encoding

Install

npm i -D compression-webpack-plugin

Usage

webpack.config.js

const CompressionPlugin = require("compression-webpack-plugin")
 
module.exports = {
  plugins: [
    new CompressionPlugin(...options)
  ]
}

Options

Name Type Default Description
test {RegExp} . All assets matching this {RegExp} are processed
asset {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
filename {Function} false A {Function} (asset) => asset which receives the asset name (after processing asset option) and returns the new asset name
algorithm {String\|Function} gzip Can be (buffer, cb) => cb(buffer) or if a {String}is used the algorithm is taken fromzlib`
threshold {Number} 0 Only assets bigger than this size are processed. In bytes.
minRatio {Number} 0.8 Only assets that compress better that this ratio are processed
deleteOriginalAssets {Boolean} false Whether to delete the original assets or not

test

webpack.config.js

[
  new CompressionPlugin({
    test: /\.js/
  })
]

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

Maintainers


Joshua Wiens

Juho Vepsäläinen

Michael Ciniawsky

Alexander Krasnoyarov