Herramienta Gratis Archivado

@swc/jest

Para acelerar la ejecución de tests de Jest transformando TypeScript y JSX con SWC en lugar de Babel.

Transformador de Jest basado en SWC: alternativa rápida a babel-jest y ts-jest.

Notas y contexto

Qué es

@swc/jest es un transformador para Jest desarrollado por el equipo de SWC, el compilador de JavaScript y TypeScript escrito en Rust. Sustituye a transformadores como babel-jest o ts-jest a la hora de convertir el código de los tests antes de ejecutarlos. Al apoyarse en SWC, transpila TypeScript y JSX de forma mucho más rápida, aunque sin hacer comprobación de tipos.

Para qué sirve

  • Acelerar la transformación de archivos TypeScript, JavaScript y JSX en suites de Jest.
  • Reemplazar babel-jest o ts-jest cuando la velocidad de los tests es un cuello de botella.
  • Ejecutar tests de proyectos React sin necesidad de importar React gracias al runtime automático de JSX.
  • Reutilizar la configuración de un archivo .swcrc existente dentro de Jest.

Cuándo usarlo

Es buena opción cuando tienes una suite de tests grande y la fase de transpilación de Jest ralentiza la ejecución. Conviene si no necesitas que el transformador haga type-checking, ya que SWC solo transpila y delega la verificación de tipos a tsc o al IDE. Frente a ts-jest gana en velocidad pero pierde la comprobación de tipos durante los tests; frente a babel-jest evita la cadena de plugins de Babel.

Ejemplo

Instalación de las dependencias necesarias:

pnpm i -D jest @swc/core @swc/jest

Configuración básica en jest.config.js:

module.exports = {
  transform: {
    '^.+\\.(t|j)sx?$': '@swc/jest',
  },
};

Con opciones de SWC para TypeScript y JSX:

module.exports = {
  transform: {
    '^.+\\.(t|j)sx?$': [
      '@swc/jest',
      {
        jsc: {
          target: 'es2021',
          parser: {
            syntax: 'typescript',
            jsx: true,
          },
        },
      },
    ],
  },
};

Puntos clave

  • Transformación basada en SWC (Rust), notablemente más veloz que las alternativas basadas en Babel o TypeScript.
  • Soporta TypeScript, JavaScript y JSX con un único patrón de transform.
  • Carga automáticamente la configuración de .swcrc y permite sobrescribir opciones de jsc, parser y transform.
  • Distribuido bajo licencia MIT y publicado en npm como @swc/jest.

Ten en cuenta

No realiza comprobación de tipos: necesitas tsc o el editor para detectar errores de tipado. El repositorio swc-project/jest está archivado desde enero de 2025 y en modo solo lectura; el código se trasladó al monorepo swc-project/pkgs, donde se mantiene el paquete. El paquete @swc/jest en npm sigue operativo, pero las incidencias deben reportarse en el repositorio principal de SWC.

Volver al directorio
Volver al directorio