Versões e pacotes

exports no package.jsonem detalhes

Cole o manifesto, escolha uma entrada e acompanhe a primeira condição atendida.

exports no package.json

Entrada package.json

O manifesto fica neste navegador; não há consulta ao npm nem envio de arquivo.

Resultado da resolução

Digite um manifesto package.json.

Opções de resolução

Separe por espaços ou vírgulas. O comportamento completo do navegador e do bundler não é simulado.

A entrada ou as opções mudaram. Resolva novamente antes de exportar.

Um pacote pode funcionar com import e falhar com require. A ordem das exportações condicionais nos exports no package.json ajuda a explicar qual arquivo cada chamada seleciona.

Esta visualização de exports no package.json segue uma entrada por vez. Um alias # usa imports e só vale dentro do pacote; o arquivo de destino não é lido.

Por que visualizar os exports no package.json?

Descubra o primeiro ramo válido

As exportações condicionais seguem a ordem das chaves JSON, não a ordem em que as condições foram digitadas. Um default antecipado pode esconder um import logo abaixo.

Vários ramos em ordem saem de um manifesto, com apenas o primeiro válido destacado.

Separe entrada pública de alias interno

Os exports no package.json expõem . e ./feature. Já #config em imports só funciona no pacote; null representa um bloqueio intencional, não um arquivo ausente.

Mapa com duas entradas públicas, um alias interno com cerquilha e um caminho bloqueado.

Acompanhe uma requisição sem adivinhar

01

Teste o nome ou um alias #

sample-kit/feature é normalizado para ./feature a partir de name. #config muda para o mapa imports e só vale dentro do próprio pacote.

02

Mude as condições

O padrão é Node.js com import. Compare require ou adicione outra condição. A resolução automática aguarda 350 ms; desligada, use o botão ou Ctrl/Cmd + Enter.

03

Leia o alvo antes de exportar

Confira a chave, a ordem dos ramos e o destino. O diagnóstico não prova que o arquivo exista. Qualquer mudança impede copiar o relatório antigo.

Entenda a escolha em cada camada

Chaves exatas e padrão *

Teste raiz, subcaminho exato ou padrão *. A chave exata tem prioridade; padrões específicos ganham dos amplos, enquanto null fecha uma parte privada. Cada um desses pontos de entrada aparece no relatório.

Node e condições extras

Compare import e require no Node.js. Acrescente browser, types ou development para visualizar condições, sem simular o resolvedor completo de um bundler.

Diagnóstico de caminhos

Destinos locais em exports começam com ./ e não sobem diretórios nem entram em node_modules. imports também pode apontar para outro pacote.

O que esse resultado pode confirmar

Não comprova arquivos
Os exports no package.json escolhem um texto de destino. Sem a árvore de arquivos não há como confirmar existência, inclusão no pacote publicado ou carregamento correto.
Condições extras são uma prévia
Ativar browser ou types não reproduz Vite, webpack ou TypeScript, que aplicam outras regras de campos, extensões e declarações.
# é um alias privado
Uma entrada # de imports serve apenas ao código do mesmo pacote. Mesmo apontando para um pacote externo, não vira entrada pública.
Sem consulta ou execução
A página não busca pacotes no npm, não vasculha pastas, não executa scripts, não cria mapas e não testa todas as versões do Node.

Dúvidas sobre exports no package.json

Por que um caminho antes importável deixa de funcionar com exports?

Depois que exports define a interface pública, subcaminhos não listados deixam de ser acessíveis externamente. Confira a chave exata ou um padrão *.

A ordem das condições muda o resultado?

Sim. O Node percorre as chaves na ordem do objeto e escolhe o primeiro ramo ativo com destino. default cedo demais pode ocultar import.

Como escolher entre import e require?

Troque o tipo de chamada para a mesma entrada. As condições ativas mudam, mas a ordem escrita no mapa permanece.

Qual é a diferença entre exports e imports?

exports oferece caminhos aos consumidores do pacote; imports cria aliases # para o próprio pacote, inclusive com destinos externos.

O que acontece quando um subcaminho não está listado?

Sem chave exata ou padrão correspondente, ele não é exportado. Uma correspondência null indica bloqueio proposital.

O mapa prova que o arquivo de destino existe?

Não. O mapa permite verificar a sintaxe do caminho. A existência e a publicação exigem inspecionar os arquivos reais.

Faltou um caso de resolução?

Teste agora os exports no package.json

Compare import e require na mesma entrada e compartilhe o relatório de ramos com a equipe.