esbuild-plugin-swc-minify

raw JSON →
2.1.3 verified Fri May 01 auth: no javascript

An esbuild plugin that replaces esbuild's default minifier (Terser) with SWC's minifier for faster minification of JavaScript and JSX files. Current stable version is 2.1.3, released March 2026 with a CVE fix. Active development with monthly releases. Key differentiators: leverages SWC's Rust-based minifier for 5-10x faster minification compared to Terser, supports all JSX/JS minification options via SWC's JsMinifyOptions, and integrates seamlessly as an esbuild plugin without requiring a separate build step. Requires esbuild >=0.20.0 and @swc/core >=1.13.3 as peer dependencies.

error Error: Cannot find module 'esbuild-plugin-swc-minify'
cause Missing or incorrect installation; package not installed or not in node_modules.
fix
Install the package: pnpm add -D esbuild-plugin-swc-minify (or npm).
error TypeError: swcMinify is not a function
cause Using default import instead of named import, or incorrectly requiring the package.
fix
Use named import: import { swcMinify } from 'esbuild-plugin-swc-minify';
error Error: @swc/core version must be >=1.13.3
cause Installed @swc/core version is too old for the current esbuild-plugin-swc-minify version.
fix
Upgrade @swc/core: pnpm add @swc/core@latest
error Error: The plugin 'swcMinify' must be used with esbuild >=0.20.0
cause esbuild version below required peer dependency.
fix
Upgrade esbuild: pnpm add esbuild@latest
gotcha Do not use both esbuild's built-in minification (minify: true) and swcMinify plugin together; they will conflict. The plugin is designed to replace the built-in minifier.
fix Remove minify: true from esbuild options when using swcMinify plugin.
breaking v2.0.0 dropped CommonJS support; the package is now ESM-only. Node.js must be configured for ES modules ("type": "module" in package.json or .mjs extension).
fix Switch to ESM imports; replace require() with import statements.
deprecated Using @swc/core <1.13.3 is unsupported and may cause runtime errors.
fix Upgrade @swc/core to >=1.13.3.
gotcha The plugin does not support minifying CSS; only JavaScript/JSX files are processed.
fix Use a separate CSS minifier (e.g., esbuild's built-in CSS minifier or a plugin).
npm install esbuild-plugin-swc-minify
yarn add esbuild-plugin-swc-minify
pnpm add esbuild-plugin-swc-minify

Demonstrates basic usage of esbuild-plugin-swc-minify with esbuild build, including plugin setup with SWC minification options.

import * as esbuild from 'esbuild';
import { swcMinify } from 'esbuild-plugin-swc-minify';

await esbuild.build({
  entryPoints: ['./src/index.js'],
  outfile: 'dist/index.min.js',
  bundle: true,
  minify: true,
  sourceMap: true,
  plugins: [
    swcMinify({ ecma: 2022 })
  ]
});