Revisar pacotes resolvidos e versões duplicadas

Cole um lockfile ou trecho para listar os pacotes e versões resolvidas reconhecidos. Consulte o relatório para encontrar pacotes registrados em mais de uma versão.

Funciona localmente no seu navegador
Esta ferramenta processa todos os dados localmente no seu navegador.
LockfileCole package-lock.json, pnpm-lock.yaml, yarn.lock ou um trecho. O navegador conta pacotes resolvidos e versões duplicadas.
Pacotes resolvidos

Como analisar um lockfile

Esta página lê package-lock.json, pnpm-lock.yaml ou yarn.lock no navegador e informa o que o lockfile resolve: quantas entradas ele fixa, quantos nomes diferentes contém e quais nomes estão fixados em mais de uma versão. Nada é instalado e nenhum registro é contactado.

Cole o arquivo ou um trecho dele e pressione Analisar localmente. O relatório mostra o formato detectado, o número de entradas resolvidas e os nomes duplicados; a tabela imprime nome, versão e origem de cada entrada, e Copiar leva o relatório JSON para a área de transferência.

  1. Abra package-lock.json, pnpm-lock.yaml ou yarn.lock e cole-o, ou cole o trecho que está investigando.
  2. Pressione Analisar localmente.
  3. Leia as três métricas: formato, entradas resolvidas e versões duplicadas.
  4. Verifique os avisos com os nomes que resolvem para mais de uma versão e procure-os na tabela.
  5. Pressione Copiar para o relatório JSON, ou Limpar para começar de novo.

O que o relatório do lockfile conta

Os três formatos reconhecidos

Um lockfile do npm é reconhecido pelos campos lockfileVersion, packages ou dependencies. Arquivos de versão 2 e 3 são lidos do mapa packages: cada chave que contém node_modules/ vira uma entrada, portanto a entrada do projeto raiz ("") não é contada e um caminho aninhado como node_modules/foo/node_modules/bar aparece como bar. Arquivos de versão 1 são lidos do mapa dependencies.

Um lockfile do pnpm é reconhecido pelo lockfileVersion ou pela seção packages, e cada chave /nome@versão vira uma entrada, incluindo nomes com escopo como /@babel/core@7.24.0. Um lockfile do Yarn clássico é reconhecido pelos blocos de seletores: a linha version é pareada com cada seletor da chave, então uma linha que mapeia duas faixas para uma versão gera duas entradas, e seletores entre aspas como "@scope/pkg@^0.4.0" têm as aspas removidas antes de extrair o nome.

Entradas, duplicados e o relatório

Uma entrada é uma resolução, não um pacote distinto: no npm é um caminho da árvore e no Yarn é um seletor, então uma dependência instalada em dois níveis aparece duas vezes. A contagem de duplicados trabalha por nome entre versões: um nome fixado em duas versões diferentes é avisado, mas a mesma versão alcançada por dois seletores não é.

O relatório JSON contém format, resolvedPackages, uniqueNames e namesWithMultipleVersions, podendo ser comparado entre duas branches. A tabela imprime no máximo 500 linhas e avisa quando o lockfile é maior; as métricas e o relatório contam sempre todas as entradas.

O que a página não pode dizer

Nada é baixado: a página não contacta o npm, o registro do pnpm nem o Yarn, por isso não pode verificar se uma versão existe, se um hash de integridade corresponde ou se um pacote está obsoleto ou afetado por um aviso de segurança. Uma entrada sem o campo version aparece como não resolvido, o que normalmente indica um lockfile editado à mão ou escrito por outra ferramenta.

Um JSON malformado interrompe a análise com uma dica e a posição onde a leitura falhou; um YAML que não seja um lockfile do pnpm e um JSON sem seção de pacotes reconhecida respondem com a mesma mensagem em vez de uma tabela vazia. Copiar antes de analisar devolve uma dica em vez de uma área de transferência vazia.

Ferramentas recentes: