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.

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
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.
npm install swc-loader
yarn add swc-loader
pnpm add swc-loader

Basic webpack configuration to transpile JavaScript files using swc-loader

// 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