esbuild-plugin-brotli
raw JSON → 0.2.0 verified Fri May 01 auth: no javascript
esbuild-plugin-brotli (v0.2.0) is a plugin for esbuild that compresses output files using Brotli algorithm during the build process. It integrates with esbuild's onEnd hook to generate .br files alongside original assets. Compared to generic compression plugins, it focuses exclusively on Brotli, offering simpler configuration. The plugin wraps Node.js zlib's brotliCompressSync. Compatible with esbuild >=0.8.0. No frequent releases; last update on npm was 2022. Active status unclear.
Common errors
error Error: Cannot find module 'esbuild-plugin-brotli' ↓
cause Package not installed or not in node_modules
fix
Run npm install esbuild-plugin-brotli
error TypeError: brotliPlugin is not a function ↓
cause Incorrect import; likely using default import without parentheses
fix
Use import { brotliPlugin } from 'esbuild-plugin-brotli'
error Error: esbuild-plugin-brotli requires esbuild. Please install it. ↓
cause Missing esbuild peer dependency
fix
Install esbuild: npm install esbuild
Warnings
gotcha Plugin uses synchronous compression; may block event loop for large files. ↓
fix Use async compression plugin or limit file sizes.
deprecated esbuild's built-in compression via 'assetNames' may be preferred. ↓
fix Consider using esbuild's native Brotli compression if using esbuild >=0.19.0.
gotcha Plugin only compresses files with extensions .js, .css, .html, .json by default. ↓
fix Provide custom 'filter' option to include other extensions.
Install
npm install esbuild-plugin-brotli yarn add esbuild-plugin-brotli pnpm add esbuild-plugin-brotli Imports
- brotliPlugin wrong
const brotliPlugin = require('esbuild-plugin-brotli')correctimport { brotliPlugin } from 'esbuild-plugin-brotli' - brotliPlugin wrong
const brotliPlugin = require('esbuild-plugin-brotli')correctconst { brotliPlugin } = await import('esbuild-plugin-brotli') - default wrong
const brotliPlugin = require('esbuild-plugin-brotli').defaultcorrectimport brotliPlugin from 'esbuild-plugin-brotli'
Quickstart
import { build } from 'esbuild';
import { brotliPlugin } from 'esbuild-plugin-brotli';
await build({
entryPoints: ['src/index.js'],
outdir: 'dist',
bundle: true,
plugins: [brotliPlugin()],
});
// After build, dist/index.js and dist/index.js.br are created.