esbuild-plugin-swc
raw JSON → 1.0.1 verified Mon Apr 27 auth: no javascript
esbuild-plugin-swc v1.0.1 integrates SWC (Speedy Web Compiler) as a transform plugin for esbuild, handling JS/JSX/TS/TSX transpilation. It wraps SWC's official Compilation options, offering faster transforms than esbuild's built-in TypeScript stripping. The plugin is intended for projects that want to leverage SWC's speed while using esbuild for bundling. Released in 2023, it follows esbuild plugin conventions and is distributed as a CommonJS module via npm. Key differentiator: direct use of SWC's Compilation API for advanced configuration.
Common errors
error Cannot find module 'esbuild-plugin-swc' ↓
cause Package not installed or typo in package name
fix
npm install -D esbuild-plugin-swc
error swcPlugin is not a function ↓
cause Using default import from require() without destructuring
fix
const { swcPlugin } = require('esbuild-plugin-swc')
error Error: The plugin 'swc' is not available (swc not installed) ↓
cause @swc/core peer dependency not installed
fix
npm install -D @swc/core
Warnings
breaking ESM import not supported ↓
fix Use CommonJS require() or dynamic import('esbuild-plugin-swc').then(m => m.swcPlugin)
gotcha @swc/core must be installed separately, not auto-installed ↓
fix Run: npm install -D @swc/core
gotcha Options must follow SWC Compilation structure (use jsc key for parser, transform) ↓
fix Refer to SWC docs: https://swc.rs/docs/configuration/compilation
Install
npm install esbuild-plugin-swc yarn add esbuild-plugin-swc pnpm add esbuild-plugin-swc Imports
- swcPlugin wrong
import { swcPlugin } from 'esbuild-plugin-swc'correctconst { swcPlugin } = require('esbuild-plugin-swc') - default import wrong
const swcPlugin = require('esbuild-plugin-swc')correctconst swcPlugin = require('esbuild-plugin-swc').swcPlugin - swcPlugin options wrong
swcPlugin({ parser: { syntax: 'typescript' } })correctswcPlugin({ jsc: { parser: { syntax: 'typescript' } } })
Quickstart
const esbuild = require('esbuild');
const { swcPlugin } = require('esbuild-plugin-swc');
esbuild.build({
entryPoints: ['index.ts'],
bundle: false,
outdir: 'out',
plugins: [swcPlugin()]
}).catch(err => {
console.error(err);
process.exit(1);
});