Prepare compressed versions of assets to serve them with Content-Encoding
Latest commit 894a96b Apr 7, 2017 @d3viant0ne d3viant0ne chore(release): 0.4.0

npm deps chat

Compression Plugin

Compression plugin for Webpack.


npm i -D compression-webpack-plugin


var CompressionPlugin = require("compression-webpack-plugin");
module.exports = {
	plugins: [
		new CompressionPlugin({
			asset: "[path].gz[query]",
			algorithm: "gzip",
			test: /\.(js|html)$/,
			threshold: 10240,
			minRatio: 0.8


  • asset: 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. Defaults to "[path].gz[query]".
  • filename: A function(asset) which receives the asset name (after processing asset option) and returns the new asset name. Defaults to false.
  • algorithm: Can be a function(buf, callback) or a string. For a string the algorithm is taken from zlib (or zopfli for zopfli). Defaults to "gzip".
  • test: All assets matching this RegExp are processed. Defaults to every asset.
  • threshold: Only assets bigger than this size are processed. In bytes. Defaults to 0.
  • minRatio: Only assets that compress better that this ratio are processed. Defaults to 0.8.
  • deleteOriginalAssets: Whether to delete the original assets or not. Defaults to false.

Option Arguments for Zopfli (see node-zopfli doc for details):

  • verbose: Default: false,
  • verbose_more: Default: false,
  • numiterations: Default: 15,
  • blocksplitting: Default: true,
  • blocksplittinglast: Default: false,
  • blocksplittingmax: Default: 15


Juho Vepsäläinen

Joshua Wiens

Kees Kluskens

Sean Larkin