Revisar paquetes resueltos y versiones duplicadas

Pega un lockfile o un fragmento para listar los paquetes y versiones resueltas que se reconocen. Consulta el informe para encontrar paquetes registrados con varias versiones.

Se ejecuta localmente en tu navegador
Esta herramienta procesa todos los datos localmente en tu navegador.
Archivo lockPega package-lock.json, pnpm-lock.yaml, yarn.lock o un extracto. El navegador cuenta paquetes resueltos y versiones duplicadas.
Paquetes resueltos

Cómo analizar un lockfile

Esta página lee package-lock.json, pnpm-lock.yaml o yarn.lock en el navegador e informa de lo que fija el lockfile: cuántas entradas resuelve, cuántos nombres distintos contiene y qué nombres quedan fijados a más de una versión. No se instala nada ni se contacta con ningún registro.

Pega el archivo o una sección y pulsa Analizar en local. El informe muestra el formato detectado, el número de entradas resueltas y los nombres duplicados; la tabla imprime nombre, versión y origen de cada entrada, y Copiar lleva el informe JSON al portapapeles.

  1. Abre package-lock.json, pnpm-lock.yaml o yarn.lock y pégalo, o pega el extracto que estés investigando.
  2. Pulsa Analizar en local.
  3. Lee las tres métricas: formato, entradas resueltas y versiones duplicadas.
  4. Revisa los avisos con los nombres que resuelven a más de una versión y búscalos en la tabla.
  5. Pulsa Copiar para el informe JSON, o Limpiar para empezar de nuevo.

Qué cuenta el informe del lockfile

Los tres formatos que reconoce

Un lockfile de npm se reconoce por sus campos lockfileVersion, packages o dependencies. Los archivos de versión 2 y 3 se leen del mapa packages: cada clave que contiene node_modules/ se convierte en una entrada, así que la entrada del proyecto raíz ("") no se cuenta y una ruta anidada como node_modules/foo/node_modules/bar aparece como bar. Los archivos de versión 1 se leen del mapa dependencies.

Un lockfile de pnpm se reconoce por su lockfileVersion o su sección packages, y cada clave /nombre@versión se convierte en una entrada, incluidos nombres con ámbito como /@babel/core@7.24.0. Un lockfile de Yarn clásico se reconoce por sus bloques de selectores: la línea version se empareja con cada selector de la clave, así que una línea que asigna dos rangos a una versión produce dos entradas, y los selectores con comillas como "@scope/pkg@^0.4.0" se despojan de ellas antes de tomar el nombre.

Entradas, duplicados y el informe

Una entrada es una resolución, no un paquete distinto: en npm es una ruta del árbol y en Yarn un selector, así que una dependencia instalada en dos niveles aparece dos veces. El recuento de duplicados trabaja por nombre entre versiones: se avisa de un nombre fijado a dos versiones distintas, pero no de la misma versión alcanzada por dos selectores.

El informe JSON contiene format, resolvedPackages, uniqueNames y namesWithMultipleVersions, de modo que puede compararse entre dos ramas. La tabla imprime como máximo 500 filas y lo indica cuando el lockfile es mayor; las métricas y el informe siempre cuentan todas las entradas.

Lo que la página no puede decirte

No se descarga nada: la página no contacta con npm, el registro de pnpm ni Yarn, así que no puede verificar que una versión exista, que un hash de integridad coincida o que un paquete esté obsoleto o afectado por un aviso de seguridad. Una entrada sin campo version se imprime como sin resolver, lo que suele indicar que el lockfile se editó a mano o lo escribió otra herramienta.

Un JSON mal formado detiene el análisis con una pista y la posición donde falló el análisis; un YAML que no sea un lockfile de pnpm y un JSON sin sección de paquetes reconocida responden con el mismo mensaje en lugar de una tabla vacía. Copiar antes de analizar devuelve una pista en vez de un portapapeles vacío.

Herramientas recientes: