Registry / web-framework / esbuild-plugin-swc

esbuild-plugin-swc

JSON →
library1.0.1jsnpmunverified

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.

npm install esbuild-plugin-swc
INSTALL
IMPORT
SIG · ESBUILD-PLUGIN-SWC
E
esbuild-plugin-swc
web-frameworkjavascriptv1.0.1
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18223 runs
build_error
glibc
node 18223 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

swcPlugin
const { swcPlugin } = require('esbuild-plugin-swc')
import { swcPlugin } from 'esbuild-plugin-swc'
This package is CJS-only; ESM import syntax will fail. Use require() in CommonJS environments or dynamic import() in ESM.
default import
const swcPlugin = require('esbuild-plugin-swc').swcPlugin
const swcPlugin = require('esbuild-plugin-swc')
The package exports swcPlugin as a named export, not default. Direct require() returns the module object; must destructure.
swcPlugin options
swcPlugin({ jsc: { parser: { syntax: 'typescript' } } })
swcPlugin({ parser: { syntax: 'typescript' } })
Options mirror SWC's Compilation structure, not flattened. jsc object must wrap parser, transform, etc.

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); });
Debug
Known issues
breakingESM import not supported
fix
Use CommonJS require() or dynamic import('esbuild-plugin-swc').then(m => m.swcPlugin)
affects: >=1.0.0
gotcha@swc/core must be installed separately, not auto-installed
fix
Run: npm install -D @swc/core
affects: >=1.0.0
gotchaOptions must follow SWC Compilation structure (use jsc key for parser, transform)
fix
Refer to SWC docs: https://swc.rs/docs/configuration/compilation
affects: >=1.0.0
Errors
Common errors & fixes
Cannot find module 'esbuild-plugin-swc'
Package not installed or typo in package name
fix
npm install -D esbuild-plugin-swc
swcPlugin is not a function
Using default import from require() without destructuring
fix
const { swcPlugin } = require('esbuild-plugin-swc')
Error: The plugin 'swc' is not available (swc not installed)
@swc/core peer dependency not installed
fix
npm install -D @swc/core
Upgrade
Version history
1.0.1latest on npm
Audit
Dependencies
esbuildrequiredRuntime peer dependency - the plugin is called during esbuild builds
@swc/coreoptionalRequired peer dependency for SWC transformation
Agent activity
2 hits · last 30 days
node
2
Resources
esbuild-plugin-swc — npm install esbuild-plugin-swc · libregistry