Communitygithub.com

Expert SWC-Unterstützung

Professionelle Hilfe für die leistungsstarke Rust-basierte JavaScript/TypeScript-Kompilierung mit SWC, einschließlich .swcrc-Konfiguration, Jest-Tests über @swc/jest und Minifizierung. Verwenden Sie dies beim Ersetzen von Babel durch SWC für schnellere Builds, beschleunigte Testausführung oder Kompilierung moderner ECMAScript-Funktionen.

Was ist Expert SWC-Unterstützung?

Diese Fähigkeit bietet eine umfassende Anleitung und Unterstützung für SWC (Speedy Web Compiler), eine extrem schnelle, in Rust geschriebene Plattform zum Transpilieren und Bündeln von JavaScript und TypeScript. Sie ist als Compiler in Next.js und Deno integriert und kann herkömmliche Tools wie Babel um ein Vielfaches übertreffen. Die Fähigkeit behandelt die Erstellung minimalistischer und produktionsreifer .swcrc-Konfigurationen, die programmgesteuerte Nutzung der @swc/core API in Node.js-Skripten sowie die praktische Befehlszeilentranspilierung über @swc/cli. Ein Schwerpunkt liegt auf der Beschleunigung von Jest-Tests durch den Austausch von ts-jest gegen @swc/jest, was die Ausführungszeit drastisch verkürzt. Darüber hinaus werden Best Practices für Minifizierung, Quellcodezuordnung und die Vermeidung häufiger Fehler vermittelt. Die Anleitung richtet sich an Entwickler, die ihre Build-Pipelines optimieren, auf modernste ECMAScript-Features umsteigen oder ihre Assets mit minimalem Aufwand optimieren möchten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/G1Joshi/Agent-Skills/tree/HEAD/skills/tools/swc

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

SWC

SWC (Speedy Web Compiler) ist eine erweiterbare Plattform auf Rust-Basis. Es ist der Compiler, der in Next.js und Deno verwendet wird.

Verwendungszweck

  • Hochleistungs-JavaScript/TypeScript-Transpilierung: Ersetzung von Babel durch einen bis zu 20-mal schnelleren Rust-basierten Compiler.
  • Next.js & moderne Bundler-Pipelines: Transpilierung von React JSX, TSX, modernen ECMAScript-Funktionen und Webpack/Turbopack-Assets.
  • Programmatische AST-Manipulation & Code-Generierung: Erstellung schneller, benutzerdefinierter Build-Tools mit der @swc/core Node.js-API.
  • Minifizierung von Produktions-Assets: JS- und CSS-Bundles mit extremer Geschwindigkeit mit dem Minifier von @swc/core minifizieren.

Schnellstart

1. Minimale .swcrc

{
  "$schema": "https://json.schemastore.org/swcrc",
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": true,
      "decorators": true
    },
    "transform": {
      "react": {
        "runtime": "automatic"
      }
    },
    "target": "es2022"
  },
  "minify": false
}

2. Kompilierung über CLI

npx @swc/cli src -d dist

Kernkonzepte

Produktions-SWC-Konfiguration (.swcrc)

Konfiguration von modernem TypeScript, React 19 JSX-Laufzeit und Modultranspilierung:

{
  "$schema": "https://json.schemastore.org/swcrc",
  "jsc": {
    "parser": {
      "syntax": "typescript",
      "tsx": true,
      "decorators": true,
      "dynamicImport": true
    },
    "transform": {
      "react": {
        "runtime": "automatic",
        "refresh": true
      }
    },
    "target": "es2022",
    "loose": false,
    "externalHelpers": true,
    "keepClassNames": true,
    "minify": {
      "compress": {
        "unused": true,
        "drop_console": true
      },
      "mangle": true
    }
  },
  "module": {
    "type": "es6"
  },
  "minify": true,
  "sourceMaps": true
}

Programmatische Kompilierung mit der @swc/core API

Asynchrone Transpilierung von Quelldateien in Node.js-Skripten:

import swc from "@swc/core";
import fs from "node:fs/promises";

async function compileTypeScript(filePath) {
  const code = await fs.readFile(filePath, "utf-8");

  const output = await swc.transform(code, {
    filename: filePath,
    sourceMaps: true,
    jsc: {
      parser: { syntax: "typescript", tsx: true },
      target: "es2022",
    },
    module: { type: "commonjs" },
  });

  console.log("Transpilierter Code:\n", output.code);
  if (output.map) {
    console.log("Source Map generiert");
  }
}

compileTypeScript("./src/index.ts");

Hochgeschwindigkeits-CLI-Transpilierung

Direkte Kompilierung von Verzeichnisbäumen mit der SWC-Befehlszeile:

# src/ nach dist/ mit Source Maps transpilieren
npx swc src -d dist --copy-files --source-maps

# Mit swcpack transpilieren und bündeln
npx swc src/index.ts -o dist/bundle.js --minify

Häufige Muster

Jest-Tests mit @swc/jest beschleunigen

Problem: TypeScript-Transpilierung mit ts-jest führt dazu, dass Test-Suites sehr langsam laufen. Lösung: Ersetzen Sie ts-jest durch @swc/jest.

// jest.config.js
module.exports = {
  transform: {
    "^.+\\.(t|j)sx?$": [
      "@swc/jest",
      {
        jsc: {
          transform: {
            react: { runtime: "automatic" },
          },
        },
      },
    ],
  },
};

SWC-Bündelungs- & Minifizierungspipeline

Problem: Schnelle Minifizierung für Produktions-Build-Skripte erforderlich. Lösung: Aktivieren Sie die minify-Optionen in .swcrc.

{
  "minify": true,
  "jsc": {
    "minify": {
      "compress": {
        "drop_console": true
      },
      "mangle": true
    }
  }
}

Best Practices (2026)

  • Tun Sie @swc/helpers installieren und externalHelpers: true aktivieren, um die Duplizierung von Transpiler-Laufzeit-Helper-Stubs zu vermeiden.
  • Tun Sie SWC mit tsc --noEmit in CI/CD-Pipelines kombinieren, da SWC Code transpiliert, ohne eine Typprüfung durchzuführen.
  • Tun Sie target: "es2022" oder neuer konfigurieren, um native moderne Browserfähigkeiten zu nutzen.
  • Tun Sie @swc/jest oder @swc/register verwenden, um die Ausführung von Unit-Tests drastisch zu beschleunigen.
  • Tun Sie nicht sich auf Babel-Plugins verlassen, es sei denn, es ist unbedingt erforderlich; prüfen Sie, ob native SWC-Plugins (Wasm-Plugins) existieren.
  • Tun Sie nicht .swc-Build-Cache-Verzeichnisse in Git-Repositorys committen.
  • Tun Sie nicht die SWC-Minifizierung ohne Generierung von Source Maps zur Produktionsfehlersuche ausführen.

Fehlerbehebung

Fehler / SymptomUrsacheLösung
failed to handle: error parsing typescriptTypeScript-Syntax (z.B. JSX oder Decorators) ohne Aktivierung der Flags in .swcrcStellen Sie sicher, dass "syntax": "typescript", "tsx": true und "decorators": true in jsc.parser vorhanden sind.
Decorator-Metadaten werden nicht ausgegeben (Reflect.getMetadata gibt undefined zurück)transform.legacyDecorator und transform.decoratorMetadata nicht konfiguriertSetzen Sie "legacyDecorator": true und "decoratorMetadata": true innerhalb von jsc.transform.
Cannot find module '@swc/core-darwin-arm64'Native Binärinstallation während npm/yarn-Installation fehlgeschlagenFühren Sie npm install --force @swc/core aus, um den nativen Binärabbau für die Zielarchitektur auszulösen.

Referenzen

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

G1Joshi/Agent-Skills

Expert Dask distributed computing assistance covering Dask DataFrames, Arrays, Futures, and cluster scaling. Use when analyzing datasets too large for pandas on a single machine or multi-node cluster.

G1Joshi/Agent-Skills

Expert dbt (data build tool) assistance covering SQL modeling, Jinja macros, tests, documentation, and semantic layer. Use when building analytics engineering pipelines on BigQuery, Snowflake, or PostgreSQL.

G1Joshi/Agent-Skills

Expert JAX assistance covering Autograd, XLA compilation (`jit`), vectorization (`vmap`), and parallelization (`pmap`). Use when building high-performance numerical computing and cutting-edge deep learning research.

G1Joshi/Agent-Skills

Expert Ray distributed computing assistance covering Ray Core (actors, tasks), Ray Train, Ray Tune, and Ray Serve. Use when scaling Python compute and ML training across multi-node clusters.

G1Joshi/Agent-Skills

Expert Git version control assistance covering branching, interactive rebase, cherry-pick, submodules, worktrees, and conflict resolution. Use when managing source code history and collaboration workflows.

G1Joshi/Agent-Skills

Expert K9s CLI assistance covering terminal Kubernetes cluster navigation, real-time log streaming, port forwarding, and pod debugging. Use when managing and troubleshooting Kubernetes clusters with speed.

G1Joshi/Agent-Skills

Expert Tig assistance covering text-mode interface for Git, interactive staging, commit graph visualization, diff exploration, and blame navigation. Use when navigating Git commit history in the terminal, staging hunks interactively, browsing file changes, or reviewing revisions.

G1Joshi/Agent-Skills

Expert Vim assistance covering modal editing, .vimrc configuration, registers, macros, search/replace, and plugin management via vim-plug. Use when editing text efficiently in terminal environments, writing Vimscript, recording macros, or configuring core Vim settings.

G1Joshi/Agent-Skills

Expert Zed editor assistance covering high-performance Rust-based text editing, multi-buffer editing, language server protocols (LSP), and AI assistant integrations. Use when configuring Zed settings.json, setting up language extensions, collaborating in real-time channels, or optimizing editor startup speed.

G1Joshi/Agent-Skills

Expert Zsh assistance covering shell customization, Oh My Zsh plugins, Zinit plugin manager, prompt engineering (Starship/Powerlevel10k), and shell scripting. Use when configuring .zshrc, writing Zsh automation scripts, optimizing shell startup time, or configuring tab-completion.

G1Joshi/Agent-Skills

Expert [skill-name] assistance covering [feature 1], [feature 2], and [feature 3]. Use when [working with X], [debugging Y], or [implementing Z].

Verwandte Skills