swc-loader
raw JSON → 0.2.7 verified Sat Apr 25 auth: no javascript
Webpack loader for the SWC compiler (Rust-based transpiler for JS/TS). Current stable version 0.2.7. Released as part of the swc project (monorepo under @swc). Key differentiators: integrates SWC into Webpack build pipeline for fast transpilation; supports both JavaScript and TypeScript via swc configuration; can be run synchronously or asynchronously. Alternatives include babel-loader, ts-loader.
Common errors
error Module not found: Error: Can't resolve '@swc/core' ↓
cause @swc/core not installed
fix
npm install --save-dev @swc/core
error Error: swc-loader is not compatible with webpack < 2 ↓
cause Webpack version too low
fix
Upgrade webpack to >=2
error Error: swc-loader requires sync: true for full error stack ↓
cause Async mode may hide error details
fix
Set sync: true in loader options
Warnings
gotcha Error messages may be truncated. Use sync: true for full error output. ↓
fix Add sync: true to loader options.
breaking swc-loader requires @swc/core ^1.2.147. Incompatible with older versions. ↓
fix Upgrade @swc/core to ^1.2.147.
deprecated Options passed directly to loader are forwarded to swc. Some options changed between swc versions. ↓
fix Refer to swc.rs/docs/configuring-swc for valid options.
gotcha The loader expects .swcrc config file by default. Inline options merge with .swcrc. ↓
fix Either provide .swcrc or pass all config via loader options.
gotcha TypeScript support requires explicit parser syntax: 'typescript' in jsc.parser. ↓
fix Add jsc: { parser: { syntax: 'typescript' } } to loader options.
Install
npm install swc-loader yarn add swc-loader pnpm add swc-loader Imports
- swc-loader wrong
import swcLoader from 'swc-loader'correctuse: { loader: 'swc-loader' } in webpack config
Quickstart
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.m?js$/,
exclude: /node_modules/,
use: {
loader: 'swc-loader',
options: {
sync: true,
jsc: {
parser: {
syntax: 'ecmascript',
jsx: false
},
target: 'es2020'
}
}
}
}
]
}
};
// package.json side: ensure @swc/core and webpack are installed
// npm install --save-dev @swc/core swc-loader webpack