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.

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
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
npm install esbuild-plugin-swc
yarn add esbuild-plugin-swc
pnpm add esbuild-plugin-swc

Transpile a single TypeScript entry using esbuild with the SWC plugin, outputting to 'out' directory without bundling.

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);
});