{"id":26943,"library":"esbuild-plugin-compressor","title":"esbuild-plugin-compressor","description":"An esbuild plugin for compressing output files with gzip or brotli after bundling. Current version 1.0.1, released in 2023 with infrequent updates. It supports filtering by file type and optional deletion of originals. Differentiators include a simple API, TypeScript types, and compatibility with esbuild >=0.17.19. Compared to alternatives like esbuild-plugin-compress or manual post-build scripts, this plugin is lightweight and straightforward.","status":"active","version":"1.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/nrk9819/esbuild-plugin-compressor","tags":["javascript","esbuild","esbuild plugin","compress","compression","brotli","gzip","typescript"],"install":[{"cmd":"npm install esbuild-plugin-compressor","lang":"bash","label":"npm"},{"cmd":"yarn add esbuild-plugin-compressor","lang":"bash","label":"yarn"},{"cmd":"pnpm add esbuild-plugin-compressor","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for plugin functionality","package":"esbuild","optional":false}],"imports":[{"note":"Default export is not available; must use named import","wrong":"import compressor from 'esbuild-plugin-compressor'","symbol":"compressor","correct":"import { compressor } from 'esbuild-plugin-compressor'"},{"note":"Package is ESM-only; CommonJS require will fail unless using a bundler or Node's ESM support","wrong":"const compressor = require('esbuild-plugin-compressor')","symbol":"compressor","correct":"import { compressor } from 'esbuild-plugin-compressor'"}],"quickstart":{"code":"import * as esbuild from 'esbuild';\nimport { compressor } from 'esbuild-plugin-compressor';\n\nawait esbuild.build({\n  entryPoints: ['src/index.ts'],\n  bundle: true,\n  outfile: 'dist/index.js',\n  plugins: [\n    compressor({\n      fileTypes: ['js', 'css'],\n      compressType: 'brotli',\n    }),\n  ],\n});","lang":"typescript","description":"Bundles a TypeScript entry point and compresses output JS and CSS files using brotli."},"warnings":[{"fix":"Always specify fileTypes with at least one extension, e.g., ['js', 'css'].","message":"If fileTypes is not provided or is an empty array, no files will be compressed.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Verify that esbuild's output matches the plugin's expectations (same directory or specified outdir).","message":"The plugin compresses files after esbuild writes them; ensure outdir or outfile outputs are in place.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use extensions with leading dot in fileTypes, e.g., ['js'] not ['js'] but note that examples show ['js', 'css'] without dot, but the plugin internally adds dot if missing? Check source; safer to include dot. Actually from README: fileTypes: ['js', 'css'] works. The error occurs if no output files have those extensions.","cause":"The fileTypes option did not match any output files (e.g., extensions without dot).","error":"Error: [plugin] compressor: No files matched the given fileTypes."}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}