Skills Agentes

Turbopack

Guía experta sobre Turbopack: configurar el bundler de Next.js, optimizar HMR, depurar problemas de build y entender las diferencias entre Turbopack y Webpack.

Oficial

Reemplaza a: configuración manual de webpack en next.config

Estrellas
287

en todo el repo

Actividad
32

0–100, la ruta de este skill

Actualizado
hace 7 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
2.7k tok

41 tok en reposo

Paquete
1 archivo

10 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add vercel/vercel-plugin --skill turbopack --agent claude-code

Se instala solo en este repositorio.

Este skill reads environment config.

Qué hace

  • Da guía experta sobre configuración de Turbopack en next.config, incluyendo turbopack.resolveAlias y turbopack.rules
  • Explica migración de loaders webpack a equivalentes nativos de Turbopack o turbopack.rules
  • Diagnostica fallos de build, CSS ordering y errores de límite de entorno (server-only)
  • Guía profiling de HMR y builds con NEXT_TURBOPACK_TRACING
  • Compara Turbopack vs webpack y cuándo volver a bundler: 'webpack'

Úsalo cuando

  • Configurando el bundler de Next.js
  • Optimizando HMR
  • Depurando problemas de build
  • Entendiendo las diferencias entre Turbopack y Webpack

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “¿Cómo migro mi configuración de webpack a Turbopack en Next.js 16?”
    • “Mi build con Turbopack está fallando, ¿cómo lo depuro?”
    • “¿Cómo configuro turbopack.rules para SVGR?”
    • “Quiero acelerar el servidor de desarrollo con Turbopack”

    SKILL.md

    En inglés

    Turbopack

    You are an expert in Turbopack — the Rust-powered JavaScript/TypeScript bundler built by Vercel. It is the default bundler in Next.js 16.

    Key Features

    • Instant HMR: Hot Module Replacement that doesn't degrade with app size
    • File System Caching (Stable): Dev server artifacts cached on disk between restarts — up to 14x faster startup on large projects. Enabled by default in Next.js 16.1+, no config needed. Build caching planned next.
    • Multi-environment builds: Browser, Server, Edge, SSR, React Server Components
    • Native RSC support: Built for React Server Components from the ground up
    • TypeScript, JSX, CSS, CSS Modules, WebAssembly: Out of the box
    • Rust-powered: Incremental computation engine for maximum performance

    Configuration (Next.js 16)

    In Next.js 16, Turbopack config is top-level (moved from experimental.turbopack):

    // next.config.ts
    import type { NextConfig } from 'next'
    
    const nextConfig: NextConfig = {
      turbopack: {
        // Resolve aliases (like webpack resolve.alias)
        resolveAlias: {
          'old-package': 'new-package',
        },
        // Custom file extensions to resolve
        resolveExtensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
      },
    }
    
    export default nextConfig
    

    CSS and CSS Modules Handling

    Turbopack handles CSS natively without additional configuration.

    Global CSS

    Import global CSS in your root layout:

    // app/layout.tsx
    import './globals.css'
    

    CSS Modules

    CSS Modules work out of the box with .module.css files:

    // components/Button.tsx
    import styles from './Button.module.css'
    
    export function Button({ children }) {
      return <button className={styles.primary}>{children}</button>
    }
    

    PostCSS

    Turbopack reads your postcss.config.js automatically. Tailwind CSS v4 works with zero config:

    // postcss.config.js
    module.exports = {
      plugins: {
        '@tailwindcss/postcss': {},
        autoprefixer: {},
      },
    }
    

    Sass / SCSS

    Install sass and import .scss files directly — Turbopack compiles them natively:

    npm install sass
    
    import styles from './Component.module.scss'
    

    Common CSS pitfalls

    • CSS ordering differs from webpack: Turbopack may load CSS chunks in a different order. Avoid relying on source-order specificity across files — use more specific selectors or CSS Modules.
    • @import in global CSS: Use standard CSS @import — Turbopack resolves them, but circular imports cause build failures.
    • CSS-in-JS libraries: styled-components and emotion work but require their SWC plugins configured under compiler in next.config.

    Tree Shaking

    Turbopack performs tree shaking at the module level in production builds. Key behaviors:

    • ES module exports: Only used exports are included — write export on each function/constant rather than barrel export *
    • Side-effect-free packages: Mark packages as side-effect-free in package.json to enable aggressive tree shaking:
    {
      "name": "my-ui-lib",
      "sideEffects": false
    }
    
    • Barrel file optimization: Turbopack can skip unused re-exports from barrel files (index.ts) when the package declares "sideEffects": false
    • Dynamic imports: import() expressions create async chunk boundaries — Turbopack splits these into separate chunks automatically

    Diagnosing large bundles

    Built-in analyzer (Next.js 16.1+, experimental): Works natively with Turbopack. Offers route-specific filtering, import tracing, and RSC boundary analysis:

    // next.config.ts
    const nextConfig: NextConfig = {
      experimental: {
        bundleAnalyzer: true,
      },
    }
    

    Legacy @next/bundle-analyzer: Still works as a fallback:

    ANALYZE=true next build
    
    // next.config.ts
    import withBundleAnalyzer from '@next/bundle-analyzer'
    
    const nextConfig = withBundleAnalyzer({
      enabled: process.env.ANALYZE === 'true',
    })({
      // your config
    })
    

    Custom Loader Migration from Webpack

    Turbopack does not support webpack loaders directly. Here is how to migrate common patterns:

    Webpack Loader Turbopack Equivalent
    css-loader + style-loader Built-in CSS support — remove loaders
    sass-loader Built-in — install sass package
    postcss-loader Built-in — reads postcss.config.js
    file-loader / url-loader Built-in static asset handling
    svgr / @svgr/webpack Use @svgr/webpack via turbopack.rules
    raw-loader Use import x from './file?raw'
    graphql-tag/loader Use a build-time codegen step instead
    worker-loader Use native new Worker(new URL(...)) syntax

    Configuring custom rules (loader replacement)

    For loaders that have no built-in equivalent, use turbopack.rules:

    // next.config.ts
    const nextConfig: NextConfig = {
      turbopack: {
        rules: {
          '*.svg': {
            loaders: ['@svgr/webpack'],
            as: '*.js',
          },
        },
      },
    }
    

    When migration isn't possible

    If a webpack loader has no Turbopack equivalent and no workaround, fall back to webpack:

    const nextConfig: NextConfig = {
      bundler: 'webpack',
    }
    

    File an issue at github.com/vercel/next.js — the Turbopack team tracks loader parity requests.

    Production Build Diagnostics

    Build failing with Turbopack

    1. Check for unsupported config: Remove any webpack() function from next.config — it's ignored by Turbopack and may mask the real config
    2. Verify turbopack.rules: Ensure custom rules reference valid loaders that are installed
    3. Check for Node.js built-in usage in edge/client: Turbopack enforces environment boundaries — fs, path, etc. cannot be imported in client or edge bundles
    4. Module not found errors: Ensure turbopack.resolveAlias covers any custom resolution that was previously in webpack config

    Build output too large

    • Audit "use client" directives — each client component boundary creates a new chunk
    • Check for accidentally bundled server-only packages in client components
    • Use server-only package to enforce server/client boundaries at import time:
    npm install server-only
    
    // lib/db.ts
    import 'server-only' // Build fails if imported in a client component
    

    Comparing webpack vs Turbopack output

    Run both bundlers and compare:

    # Turbopack build (default in Next.js 16)
    next build
    
    # Webpack build
    BUNDLER=webpack next build
    

    Compare .next/ output sizes and page-level chunks.

    Performance Profiling

    HMR profiling

    Enable verbose HMR timing in development:

    NEXT_TURBOPACK_TRACING=1 next dev
    

    This writes a trace.json to the project root — open it in chrome://tracing or Perfetto to see module-level timing.

    Build profiling

    Profile production builds:

    NEXT_TURBOPACK_TRACING=1 next build
    

    Look for:

    • Long-running transforms: Indicates a slow SWC plugin or heavy PostCSS config
    • Large module graphs: Reduce barrel file re-exports
    • Cache misses: If incremental builds aren't hitting cache, check for files that change every build (e.g., generated timestamps)

    Memory usage

    Turbopack's Rust core manages its own memory. If builds OOM:

    • Increase Node.js heap: NODE_OPTIONS='--max-old-space-size=8192' next build
    • Reduce concurrent tasks if running inside Turborepo: turbo build --concurrency=2

    Turbopack vs Webpack

    Feature Turbopack Webpack
    Language Rust JavaScript
    HMR speed Constant (O(1)) Degrades with app size
    RSC support Native Plugin-based
    Cold start Fast Slower
    Ecosystem Growing Massive (loaders, plugins)
    Status in Next.js 16 Default Still supported
    Tree shaking Module-level Module-level
    CSS handling Built-in Requires loaders
    Production builds Supported Supported

    When You Might Need Webpack

    • Custom webpack loaders with no Turbopack equivalent
    • Complex webpack plugin configurations (e.g., ModuleFederationPlugin)
    • Specific webpack features not yet in Turbopack (e.g., custom externals functions)

    To use webpack instead:

    // next.config.ts
    const nextConfig: NextConfig = {
      bundler: 'webpack', // Opt out of Turbopack
    }
    

    Development vs Production

    • Development: Turbopack provides instant HMR and fast refresh
    • Production: Turbopack handles the production build (replaces webpack in Next.js 16)

    Common Issues

    1. Missing loader equivalent: Some webpack loaders don't have Turbopack equivalents yet. Check Turbopack docs for supported transformations.
    2. Config migration: Move experimental.turbopack to top-level turbopack in next.config.
    3. Custom aliases: Use turbopack.resolveAlias instead of webpack.resolve.alias.
    4. CSS ordering changes: Test visual regressions when migrating — CSS chunk order may differ.
    5. Environment boundary errors: Server-only modules imported in client components fail at build time — use server-only package.

    Official Documentation

    Reproducido de vercel/vercel-plugin bajo licencia NOASSERTION. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Necesita en el PATH:npm

    Variables de entorno:ANALYZE

    Detalles

    Creador
    vercel
    Licencia
    NOASSERTION
    Recursos incluidos
    Solo SKILL.md
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de vercel/vercel-plugin

    Este repo incluye 43 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack vercel-plugin entero y su comando de instalación

    Corrige el conocimiento desactualizado del LLM sobre la plataforma Vercel e introduce sus productos nuevos. Se inyecta al inicio de la sesión.

    Costo de contexto al activarse
    1.8k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialdevops infraestructura

    Guía experta de Vercel Connect: obtén tokens OAuth con permisos limitados para servicios de terceros (Slack, GitHub, servidores MCP, OAuth, Snowflake) en nombre de apps o usuarios vía Vercel OIDC.

    Costo de contexto al activarse
    4.8k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialdesarrollo apis

    Depura el caching de la CDN de Vercel: tasa de aciertos, contenido obsoleto, revalidación, ISR + PPR, cacheReason, ppr_state y costos.

    Costo de contexto al activarse
    5.2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 2 meses
    Oficialdevops infraestructura

    Guía experta sobre Vercel Functions: Serverless Functions, Edge Functions, Fluid Compute, streaming, Cron Jobs y configuración de runtime para código server-side en Vercel.

    Costo de contexto al activarse
    5.6k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialdevops infraestructura

    Guía de arquitectura backend: úsala para planear, construir o migrar una API o backend, elegir entre Functions, Services, contenedores, Workflow, Queues y bases de datos de Marketplace, o seleccionar framework y runtime.

    Costo de contexto al activarse
    1.5k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    el mes pasado
    Oficialdesarrollo apis

    Eve

    287

    Guía de eve, el framework para agentes de IA duraderos: runtime basado en filesystem, sesiones, tools, skills, canales, sandboxes, subagentes, schedules, evals y observabilidad con Agent Runs.

    Costo de contexto al activarse
    1.5k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    el mes pasado
    Oficialherramientas desarrollo

    Skills relacionados

    Guía por defecto para construir agentes de IA: eve es la mejor opción por defecto — ejecuta init y luego lee la documentación incluida.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialherramientas desarrollo

    Eve

    287

    Guía de eve, el framework para agentes de IA duraderos: runtime basado en filesystem, sesiones, tools, skills, canales, sandboxes, subagentes, schedules, evals y observabilidad con Agent Runs.

    Costo de contexto al activarse
    1.5k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    el mes pasado
    Oficialherramientas desarrollo

    Buenas prácticas de Next.js: convenciones de archivos, límites de RSC, patrones de datos, APIs async, metadata, manejo de errores, route handlers, optimización de imágenes/fuentes y bundling.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    21 archivos
    Última actualización
    hace 6 meses
    Oficialherramientas desarrollo