JSPM

  • Created
  • Published
  • Downloads 1194915
  • Score
    100M100P100Q205240F
  • License MIT

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

Package Exports

  • compression-webpack-plugin

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (compression-webpack-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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|Array<RegExp>} . All assets matching this {RegExp|Array<RegExp>} are processed
include {RegExp|Array<RegExp>} undefined Files to include
exclude {RegExp|Array<RegExp>} undefined Files to exclude
cache {Boolean|String} false Enable file caching
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 from zlib
threshold {Number} 0 Only assets bigger than this size are processed. In bytes.
minRatio {Number} 0.8 Only assets that compress better than this ratio are processed
deleteOriginalAssets {Boolean} false Whether to delete the original assets or not

test

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

Maintainers


Joshua Wiens

Juho Vepsäläinen

Michael Ciniawsky

Alexander Krasnoyarov