@luncheon/esbuild-plugin-gzip
v0.2.0
Published
Gzip and Brotli compression for esbuild
Downloads
2,743
Readme
esbuild-plugin-gzip
Gzip and Brotli compression for esbuild.
Installation
$ npm i -D esbuild @luncheon/esbuild-plugin-gzipUsage Example
const esbuild = require('esbuild')
const gzipPlugin = require('@luncheon/esbuild-plugin-gzip')
esbuild.build({
entryPoints: ['src/app.ts'],
outdir: 'dist',
bundle: true,
minify: true,
write: false, // write must be false
plugins: [gzipPlugin()],
})Options
gzipPlugin({
uncompressed: true, // raw output file emission
gzip: true, // gzip compressed output file emission
brotli: true, // brotli compressed output file emission
onEnd: ({ outputFiles }) => {
// outputFiles.forEach(({ path, contents }) => {})
},
})Each file emission option can be an object with:
filter: RegExp | { test: (outputFilePath: string, outputFile: OutputFile) => boolean }
gzipPlugin({
gzip: {
filter: /\.(js|css)$/i,
},
brotli: {
filter: {
test: (_outputFilePath, outputFile) => outputFile.contents.byteLength > 1_000_000,
},
},
})