Communitygithub.com

G1Joshi/Agent-Skills

Assistência especializada em SWC, cobrindo compilação Rust de alto desempenho para JavaScript/TypeScript, configuração .swcrc, testes Jest via @swc/jest e minificação. Use ao substituir Babel por SWC para builds mais rápidos, acelerar execução de testes ou compilar recursos modernos do ECMAScript.

O que é Agent-Skills?

Esta skill oferece suporte completo ao SWC (Speedy Web Compiler), um compilador baseado em Rust que substitui o Babel com ganhos de desempenho de até 20x. Ela cobre desde configuração básica e avançada do arquivo `.swcrc` até compilação programática via API Node.js (`@swc/core`), transpilação via CLI, minificação de assets de produção e aceleração de testes com `@swc/jest`. A skill é útil para desenvolvedores que trabalham com Next.js, Deno, ou qualquer pipeline que exija transpilação rápida de JavaScript/TypeScript, manipulação de AST ou construção de ferramentas customizadas. Também aborda boas práticas, solução de problemas comuns e migração de plugins Babel para plugins Wasm nativos do SWC.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

SWC

SWC (Speedy Web Compiler) é uma plataforma extensível baseada em Rust. É o compilador interno do Next.js e Deno.

Quando Usar

  • Transpilação de Alto Desempenho JavaScript/TypeScript: Substituir Babel por um compilador Rust até 20x mais rápido.
  • Pipelines Next.js e Bundlers Modernos: Transpilar React JSX, TSX, funcionalidades modernas do ECMAScript e assets Webpack/Turbopack.
  • Manipulação Programática de AST e Geração de Código: Construir ferramentas de build customizadas rápidas usando a API Node.js @swc/core.
  • Minificação de Assets de Produção: Minificar bundles JS e CSS em velocidades extremas usando o minificador @swc/core.

Início Rápido

1. .swcrc Mínimo

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

2. Compilar via CLI

npx @swc/cli src -d dist

Conceitos Principais

Configuração de Produção SWC (.swcrc)

Configurando TypeScript moderno, runtime React 19 JSX e transpilação de módulos:

{
  "$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
}

Compilação Programática com a API @swc/core

Transpilando arquivos fonte de forma assíncrona em scripts Node.js:

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("Código Transpilado:\n", output.code);
  if (output.map) {
    console.log("Source Map Gerado");
  }
}

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

Transpilação CLI de Alta Velocidade

Compilando árvores de diretórios diretamente com a linha de comando SWC:

# Transpilar src/ para dist/ com source maps
npx swc src -d dist --copy-files --source-maps

# Transpilar e empacotar com swcpack
npx swc src/index.ts -o dist/bundle.js --minify

Padrões Comuns

Acelerando Testes Jest com @swc/jest

Problema: A transpilação TypeScript com ts-jest torna as suítes de teste muito lentas. Solução: Substitua ts-jest por @swc/jest.

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

Pipeline de Empacotamento e Minificação SWC

Problema: Necessidade de minificação rápida para scripts de build de produção. Solução: Ative as opções minify dentro do .swcrc.

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

Melhores Práticas (2026)

  • Faça instale @swc/helpers e ative externalHelpers: true para evitar duplicação de stubs de runtime do transpilador.
  • Faça combine SWC com tsc --noEmit em pipelines CI/CD, pois SWC transpila código sem realizar verificação de tipos.
  • Faça configure target: "es2022" ou mais novo para aproveitar capacidades nativas de navegadores modernos.
  • Faça use @swc/jest ou @swc/register para acelerar drasticamente a execução de testes unitários.
  • Não faça dependa de plugins Babel a menos que estritamente necessário; verifique se existem plugins SWC nativos (plugins Wasm).
  • Não faça envie diretórios de cache de build do .swc para repositórios Git.
  • Não faça execute a minificação SWC sem gerar source maps para solução de problemas em produção.

Solução de Problemas

Erro / SintomaCausaSolução
failed to handle: error parsing typescriptSintaxe TypeScript (ex.: JSX ou decorators) usada sem ativar flags no .swcrcCertifique-se de que "syntax": "typescript", "tsx": true e "decorators": true estejam em jsc.parser.
Metadados de decorators não emitidos (Reflect.getMetadata retorna undefined)transform.legacyDecorator e transform.decoratorMetadata não configuradosDefina "legacyDecorator": true e "decoratorMetadata": true dentro de jsc.transform.
Cannot find module '@swc/core-darwin-arm64'Falha na instalação do binário nativo durante npm/yarn installExecute npm install --force @swc/core para acionar a busca do binário nativo para a arquitetura alvo.

Referências

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].

Habilidades Relacionadas