Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
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
/examples
directory.
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 0 weekly downloads. As such, rollup-plugin-gzip popularity was classified as not 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 0 open source maintainers 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
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.