Skills Agentes

React Vendoring

Vendorizado de React y fronteras de la capa react-server. Úsalo al editar entry-base.ts, $$compiled.internal.d.ts, los paquetes compiled/react* o copy_vendor_react.

Oficial
Estrellas
142k

en todo el repo

Actividad
43

0–100, la ruta de este skill

Actualizado
hace 3 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
987 tok

107 tok en reposo

Paquete
1 archivo

4 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add vercel/next.js --skill react-vendoring --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Explica el vendorizado de React y las fronteras de la capa react-server en Next.js
  • Impone que todos los imports de `react-server-dom-webpack/*` pasen por `entry-base.ts`
  • Cubre los canales de React vendorizados y las declaraciones de tipos
  • Explica el remapeo de Turbopack a `react-server-dom-turbopack` y los patrones de acceso a `ComponentMod`
  • Documenta cuándo suprimir ESLint en requires protegidos

Úsalo cuando

  • Se editan `entry-base.ts`, `$$compiled.internal.d.ts`, los paquetes `compiled/react*` o `taskfile.js copy_vendor_react`
  • Hay que añadir APIs de React solo para Node.js

No lo uses cuando

    Qué lo activa

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

    • Añade esta API de React vendorizada
    • ¿Por qué debe pasar este import por entry-base.ts?
    • Actualiza las declaraciones de tipos de React vendorizado

    SKILL.md

    En inglés

    React Vendoring

    Use this skill for changes touching vendored React, react-server-dom-webpack/*, or react-server layer boundaries.

    App Router Vendoring

    React is NOT resolved from node_modules for App Router. It's vendored into packages/next/src/compiled/ during pnpm build (task: copy_vendor_react() in taskfile.js). Pages Router resolves React from node_modules normally.

    • Two channels: stable (compiled/react/) and experimental (compiled/react-experimental/). The runtime bundle webpack config aliases to the correct channel via makeAppAliases({ experimental }).

    entry-base.ts Boundary

    Only entry-base.ts is compiled in rspack's (react-server) layer. ALL imports from react-server-dom-webpack/* (Flight server/static APIs) must go through entry-base.ts. Other files like stream-ops.node.ts or app-render.tsx must access Flight APIs via the ComponentMod parameter (which is the entry-base.ts module exposed through the app-page.ts build template).

    Direct imports from react-server-dom-webpack/server.node or react-server-dom-webpack/static in files outside entry-base.ts will fail at runtime with "The react-server condition must be enabled". Dev mode may mask this error, but production workers fail immediately.

    Type Declarations

    packages/next/types/$$compiled.internal.d.ts contains declare module blocks for vendored React packages. When adding new APIs (e.g. renderToPipeableStream, prerenderToNodeStream), you must add type declarations here. The bare specifier types (e.g. declare module 'react-server-dom-webpack/server') are what source code in src/ imports against.

    Adding Node.js-Only React APIs

    These exist in .node builds but not in the type definitions. Steps:

    1. Add type declarations to $$compiled.internal.d.ts.
    2. Export the API from entry-base.ts behind a process.env guard.
    3. Access it via ComponentMod in other files.
    // In entry-base.ts (react-server layer) only:
    /* eslint-disable import/no-extraneous-dependencies */
    export let renderToPipeableStream: ... | undefined
    if (process.env.__NEXT_USE_NODE_STREAMS) {
      renderToPipeableStream = (
        require('react-server-dom-webpack/server.node') as typeof import('react-server-dom-webpack/server.node')
      ).renderToPipeableStream
    } else {
      renderToPipeableStream = undefined
    }
    /* eslint-enable import/no-extraneous-dependencies */
    
    // In other files, access via ComponentMod:
    ComponentMod.renderToPipeableStream!(payload, clientModules, opts)
    

    ESLint Practical Rule

    For guarded runtime require() blocks that need import/no-extraneous-dependencies suppression, prefer scoped block disable/enable. If using eslint-disable-next-line, the comment must be on the line immediately before the require() call, NOT before the const declaration. When the const and require() are on different lines, this is error-prone.

    Turbopack Remap

    react-server-dom-webpack/* is silently remapped to react-server-dom-turbopack/* by Turbopack's import map. Code says "webpack" everywhere, but Turbopack gets its own bindings at runtime. This affects debugging: stack traces and error messages will reference the turbopack variant.

    Related Skills

    • $flags - flag wiring (config/schema/define-env/runtime env)
    • $dce-edge - DCE-safe require patterns and edge constraints
    • $runtime-debug - reproduction and verification workflow

    Reproducido de vercel/next.js bajo licencia MIT. 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

    Es un skill interno del repositorio de Next.js.

    Detalles

    Creador
    vercel
    Licencia
    MIT
    Recursos incluidos
    Solo SKILL.md
    Repositorio
    vercel/next.js
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de vercel/next.js

    Este repo incluye 22 skills. Si instalas uno, normalmente ya tienes los demás.

    Activa Cache Components en una app de Next.js y resuelve las rutas bloqueantes que aparecen. Úsalo para adoptar o migrar, activar el flag cacheComponents o decidir entre excluir rutas y arreglarlas.

    Costo de contexto al activarse
    8.1k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 3 días
    Oficialherramientas desarrollo

    Lleva una ruta de Next.js a navegación instantánea bajo Cache Components o PPR mediante un bucle agéntico: codifica el objetivo como un e2e instant() en rojo y lo trabaja hasta verde, ruta a ruta.

    Costo de contexto al activarse
    6.3k tok
    Tamaño del paquete
    6 archivos
    Última actualización
    hace 5 días
    Oficialherramientas desarrollo

    Activa Partial Prefetching en una app de Next.js y resuelve las insights que surgen: audita los Link con prefetch, activa partialPrefetching y opta por rutas con prefetch = 'partial'.

    Costo de contexto al activarse
    6k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 3 días
    Oficialherramientas desarrollo

    Verifica el comportamiento en runtime de Next.js tras editar código de la aplicación. Combina /_next/mcp, la visión de Next.js, con agent-browser, la del navegador. Requiere un next dev en marcha.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 días
    Oficialtesting qa

    Gestiona PRs apilados y parte el trabajo en ramas revisables con gh-stack: creación, visualización, edición, push, envío, sincronización, rebase, merge y checkout.

    Costo de contexto al activarse
    2.3k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    hace 12 días
    Oficialherramientas desarrollo

    Compara el rendimiento de cambios de React o Next.js en VMs de Vercel Sandbox con estadística A/B pareada: rps, latencia, p95, TTFB, RSS y bytes de documento y Flight.

    Costo de contexto al activarse
    4.1k tok
    Tamaño del paquete
    13 archivos
    Última actualización
    hace 19 días
    Oficialtesting qa

    Skills relacionados

    Cómo crear y mantener skills de agente en .agents/skills/. Úsalo al crear un SKILL.md, escribir descripciones, elegir campos de frontmatter o decidir qué va en un skill y qué en AGENTS.md.

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

    Lleva un pull request fusionado de Next.js desde canary a una rama de release anterior como next-16-2: localiza el commit, crea la rama, hace cherry-pick, valida y abre el PR.

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

    Crea ramas, commits, pushes y pull requests de GitHub para Next.js. Cubre la plantilla de PR, el formato de --body, las ramas codex/ y las directivas de git de la app Codex.

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