Versiones y paquetes

exports de package.jsonen ramas

Pega el manifiesto, elige una entrada y observa qué condición coincide primero.

exports de package.json

Entrada package.json

El manifiesto permanece en este navegador; no hay consulta a npm ni subida de archivos.

Resultado de resolución

Escribe un manifiesto package.json.

Opciones de resolución

Separa con espacios o comas. No se reproduce por completo ningún navegador ni empaquetador.

Cambió la entrada o una opción. Vuelve a resolver antes de exportar.

Cuando import funciona pero require falla, el orden de las exportaciones condicionales puede explicar la diferencia. Los exports de package.json seleccionan un punto de entrada según el contexto.

Este visor de exports de package.json sigue una petición concreta. Si escribes un alias #, usa imports; solo muestra la ruta elegida y no inspecciona archivos reales.

¿Por qué visualizar los exports de package.json?

Ver qué rama gana primero

Las exportaciones condicionales se comprueban en el orden de las claves JSON, no en el orden en que eliges las condiciones. Un default temprano puede ocultar una rama import posterior.

Varias rutas ordenadas de un manifiesto, con la primera coincidencia resaltada.

Distinguir rutas públicas y privadas

Los exports de package.json publican . y ./feature; un alias #config de imports solo vale dentro del paquete. null indica bloqueo deliberado y no un archivo perdido.

Mapa con dos entradas públicas, un alias interno con almohadilla y una ruta bloqueada.

Seguir una petición sin adivinar el resultado

01

Probar el nombre o un alias #

sample-kit/feature se normaliza a ./feature usando name. Si escribes #config se consulta imports, reservado al propio paquete.

02

Cambiar el contexto

Node.js con import es el valor inicial. Cambia a require o añade una condición. El modo automático espera 350 ms; al apagarlo aparecen el botón y Ctrl/Cmd + Intro.

03

Revisar antes de compartir

Lee la clave, el orden y el destino. El diagnóstico de rutas no prueba que exista un archivo. Cualquier cambio desactiva la copia del informe antiguo.

Inspeccionar cada nivel de selección

Claves exactas y patrones *

Prueba la raíz, una subruta exacta o un patrón *. Las claves exactas tienen prioridad y los patrones más específicos ganan a los generales; null puede cerrar una zona privada. Estas rutas de exportación mantienen visible cada coincidencia.

Node y condiciones opcionales

Compara import y require de Node.js. Agrega browser, types o development para ver un conjunto de condiciones, sin afirmar compatibilidad con un empaquetador.

Diagnóstico local de rutas

Los destinos locales en exports deben empezar por ./ y no subir de directorio ni pasar por node_modules. imports también puede apuntar a paquetes externos.

Límites de una resolución correcta

No verifica archivos
Los exports de package.json producen una cadena de destino. Sin el árbol de archivos no se sabe si existe, si va en el paquete publicado o si puede ejecutarse.
Condiciones añadidas son una vista previa
Elegir browser o types no reproduce Vite, webpack ni TypeScript: también aplican reglas de campos, extensiones y declaraciones de tipos.
Los alias # son internos
imports define referencias para el mismo paquete. Un alias # no se vuelve público aunque apunte a otro paquete.
Sin consulta del registro
No descarga desde npm, no lee carpetas, no ejecuta scripts, no genera mapas nuevos ni prueba todas las versiones de Node.

Preguntas sobre los exports de package.json

¿En qué orden se evalúan las exportaciones condicionales?

En el orden de las claves del objeto. Gana la primera rama activa con destino; default antes de import puede impedir que se llegue a import.

¿Por qué se ignora main cuando exports coincide?

En las versiones compatibles de Node, exports define los puntos públicos de entrada. Esta herramienta no usa main para abrir subrutas que faltan en ese mapa.

¿Qué ocurre con una subruta que no está exportada?

No queda disponible desde fuera del paquete. Busca una clave exacta o un patrón *; null indica que se bloqueó de forma intencionada.

¿Cómo elige entre import y require?

Cambia el tipo de llamada sin alterar la entrada. Las condiciones activas de Node cambian, mientras el orden de claves escrito en el mapa permanece igual.

¿Vite y Node.js usan las mismas condiciones?

No por completo. Puedes añadir browser a la vista previa, pero Vite también aplica otras reglas que aquí no se simulan.

¿Se puede comprobar una ruta de destino sin los archivos del paquete?

Solo su sintaxis. Para confirmar que el archivo existe y se publica debes inspeccionar el contenido real del paquete.

¿Falta un caso?

Prueba ahora los exports de package.json

Compara import y require para la misma entrada y comparte el informe de ramas para revisarlo.