
Security News
Another Round of TEA Protocol Spam Floods npm, But It’s Not a Worm
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.
rollup-plugin-gzip
Advanced tools
Creates a compressed .gz / .br artifact for your Rollup / Vite bundle.
COMPATIBILITY NOTE: This version is compatible with rollup >= 2.0.0
npm install --save-dev rollup-plugin-gzip
import { rollup } from 'rollup'
import gzipPlugin from 'rollup-plugin-gzip'
rollup({
input: 'src/index.js',
plugins: [gzipPlugin()],
}).then(/* ... */)
NOTE: This plugin is an ES module. If you import it using
require(), you have to point to the default export viarequire('rollup-plugin-gzip').default
filter RegExp | (fileName: string) => boolean
Control which of the output files to compress.
Defaults to /\.(js|mjs|cjs|json|css|html|wasm|svg)$/
gzipOptions object
GZIP compression options, see https://nodejs.org/api/zlib.html#zlib_class_options
minSize number
Specified the minimum size in Bytes for a file to get compressed. Files that are smaller than this threshold will not be compressed. This does not apply to the files specified through additionalFiles!
additionalFiles string[]
This option allows you to compress additional files outside of the main rollup bundling process.
additionalFilesDelay number
This options sets a delay (ms) before the plugin compresses the files specified through additionalFiles.
Defaults to 0 for Rollup >= 2.0.0, 2000 for older versions of Rollup
customCompression (content: string | Buffer) => string | Buffer | Promise<string | Buffer>
Set a custom compression algorithm. The function can either return the compressed contents synchronously, or otherwise return a promise for asynchronous processing.
fileName string | (fileName: string) => string
Set a custom file name convention for the compressed files. Can be a suffix string or a function returning the file name.
Defaults to ".gz"
NOTE: These examples use Rollup's JavaScript API. For Rollup configuration file examples, check out the
/examplesdirectory.
Since Node 11.7.0 you can use Node's built-in Brotli compression:
import { brotliCompress } from 'zlib'
import { promisify } from 'util'
import { rollup } from 'rollup'
import gzipPlugin from 'rollup-plugin-gzip'
const brotliPromise = promisify(brotliCompress)
rollup({
input: 'src/index.js',
plugins: [
gzipPlugin({
customCompression: content => brotliPromise(Buffer.from(content)),
fileName: '.br',
}),
],
}).then(/* ... */)
For Node < 11.7.0 you need the external brotli module:
import { compress } from 'brotli'
import { rollup } from 'rollup'
import gzipPlugin from 'rollup-plugin-gzip'
rollup({
input: 'src/index.js',
plugins: [
gzipPlugin({
customCompression: content => compress(Buffer.from(content)),
fileName: '.br',
}),
],
}).then(/* ... */)
Zopfli support is available through several different external packages, each of which comes with advantages and disadvantages:
node-zopfli (or node-zopfli-es) - native version, longer installation time, might require build toolingimport { gzipSync } from 'node-zopfli'
import { rollup } from 'rollup'
import gzipPlugin from 'rollup-plugin-gzip'
rollup({
input: 'src/index.js',
plugins: [
gzipPlugin({
customCompression: content => gzipSync(Buffer.from(content)),
}),
],
}).then(/* ... */)
@gfx/zopfli - WebAssembly version, faster installation, slower compressionimport { gzipAsync } from '@gfx/zopfli'
import { rollup } from 'rollup'
import gzipPlugin from 'rollup-plugin-gzip'
rollup({
input: 'src/index.js',
plugins: [
gzipPlugin({
customCompression: content =>
gzipAsync(Buffer.from(content), { numiterations: 15 }),
}),
],
}).then(/* ... */)
To support compressing your bundle into multiple different formats, you can add this plugin multiple times with different configurations:
import { brotliCompress } from 'zlib'
import { promisify } from 'util'
import { rollup } from 'rollup'
import gzipPlugin from 'rollup-plugin-gzip'
const brotliPromise = promisify(brotliCompress)
rollup({
input: 'src/index.js',
plugins: [
// GZIP compression as .gz files
gzipPlugin(),
// Brotil compression as .br files
gzipPlugin({
customCompression: content => brotliPromise(Buffer.from(content)),
fileName: '.br',
}),
],
}).then(/* ... */)
MIT
FAQs
Compress your Rollup / Vite bundle with Gzip or Brotli
The npm package rollup-plugin-gzip receives a total of 72,820 weekly downloads. As such, rollup-plugin-gzip popularity was classified as popular.
We found that rollup-plugin-gzip demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Recent coverage mislabels the latest TEA protocol spam as a worm. Here’s what’s actually happening.

Security News
PyPI adds Trusted Publishing support for GitLab Self-Managed as adoption reaches 25% of uploads

Research
/Security News
A malicious Chrome extension posing as an Ethereum wallet steals seed phrases by encoding them into Sui transactions, enabling full wallet takeover.