Skills swc
install
source · Clone the upstream repo
git clone https://github.com/TerminalSkills/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/TerminalSkills/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/swc" ~/.claude/skills/terminalskills-skills-swc && rm -rf "$T"
manifest:
skills/swc/SKILL.mdsource content
SWC — Super-Fast Rust Compiler
You are an expert in SWC, the Rust-based JavaScript/TypeScript compiler. You help developers replace Babel and Terser with SWC for 20-70x faster compilation, minification, and bundling — used by Next.js, Vite, Parcel, and Deno as their default compiler, handling TypeScript stripping, JSX transformation, polyfill injection, and code minification at native speed.
Core Capabilities
Configuration
// .swcrc { "$schema": "https://json.schemastore.org/swcrc", "jsc": { "parser": { "syntax": "typescript", "tsx": true, "decorators": true, "dynamicImport": true }, "transform": { "react": { "runtime": "automatic", "importSource": "react" }, "decoratorVersion": "2022-03" }, "target": "es2020", "minify": { "compress": { "dead_code": true, "drop_console": true, "passes": 2 }, "mangle": true } }, "module": { "type": "es6", "strict": true, "lazy": false }, "minify": true, "sourceMaps": true }
CLI Usage
# Compile single file npx swc src/index.ts -o dist/index.js # Compile directory npx swc src -d dist --source-maps # Watch mode npx swc src -d dist -w # Minify npx swc-minify input.js -o output.min.js # Performance comparison (10K file project): # Babel: 32s compile # SWC: 0.5s compile (64x faster)
Programmatic API
import { transform, transformSync } from "@swc/core"; // Async transform const output = await transform(sourceCode, { filename: "app.tsx", jsc: { parser: { syntax: "typescript", tsx: true }, transform: { react: { runtime: "automatic" } }, target: "es2020", }, module: { type: "es6" }, sourceMaps: true, }); console.log(output.code); console.log(output.map); // Sync (for build tools) const syncOutput = transformSync(sourceCode, { jsc: { parser: { syntax: "typescript" }, target: "es2022" }, });
Jest Integration
// jest.config.js — Replace babel-jest with @swc/jest module.exports = { transform: { "^.+\\.(t|j)sx?$": ["@swc/jest", { jsc: { parser: { syntax: "typescript", tsx: true }, transform: { react: { runtime: "automatic" } }, }, }], }, }; // Test suite runs 3-5x faster than with babel-jest
Installation
npm install -D @swc/core @swc/cli npm install -D @swc/jest # For Jest
Best Practices
- Replace Babel — SWC handles TypeScript, JSX, decorators, polyfills; drop
entirely.babelrc - Next.js default — Next.js uses SWC by default; no configuration needed
- Jest speedup — Replace
withbabel-jest
; test suites run 3-5x faster@swc/jest - Minification — Replace Terser with SWC minifier; same quality, 20x faster
- Target wisely — Set
for modern browsers;target: "es2020"
only for legacy support"es5" - Drop console — Enable
in minify config for production; removes console.log automaticallydrop_console - Source maps — Always enable
; SWC generates source maps at negligible costsourceMaps: true - Plugin system — Write SWC plugins in Rust (WASM); for custom AST transforms beyond configuration