1.1.0 • Published 2 years ago
@liber-ufpe/esbuild-plugin-compress v1.1.0
esbuild-plugin-compress
An esbuild plugin to compress output using gzip, brotli, and deflate. Based on Node's zlib API.
Install
npm install @liber-ufpe/esbuild-plugin-compress --save-devUsage
!IMPORTANT
metafile: trueoption is required to generate the compressed files. See more about metafile in esbuild docs.
import esbuild from "esbuild";
import compressPlugin from "@liber-ufpe/esbuild-plugin-compress";
const compress = compressPlugin();
esbuild.build({
entryPoints: ["src/index.js"],
bundle: true,
metafile: true,
outfile: "dist/index.js",
plugins: [compress],
}).catch(() => process.exit(1));Or when customizing the compression options:
import esbuild from "esbuild";
import compressPlugin from "@liber-ufpe/esbuild-plugin-compress";
const compress = compressPlugin({
gzip: true,
brotli: false,
gzipOptions: { level: constants.Z_BEST_SPEED },
deflateOptions: { level: constants.Z_DEFAULT_COMPRESSION },
excludes: ["**/*.{webp,avif,jpg,png}"]
});
esbuild.build({
entryPoints: ["src/index.js"],
bundle: true,
metafile: true,
outfile: "dist/index.js",
plugins: [compress],
}).catch(() => process.exit(1));Options
gzip: Enable gzip compression.- type:
boolean - default:
true
- type:
brotli: Enable brotli compression.- type:
boolean - default:
true
- type:
deflate: Enable deflate compression.- type:
boolean - default:
true
- type:
excludes: glob patterns to exclude files from compression.- type:
string[] - default:
[]
- type:
gzipOptions:ZlibOptionsfor gzip compression.- type:
ZlibOptions - default:
{level: constants.Z_BEST_COMPRESSION}
- type:
deflateOptions:ZlibOptionsfor deflate compression.- type:
ZlibOptions - default:
{level: constants.Z_BEST_COMPRESSION}
- type:
brotliOptions:BrotliOptionsfor brotli compression.- type:
BrotliOptions - default:
{}
- type: