Analizador de versiones y rangos SemVer

Introduce una versión completa y un rango para ver si coinciden. El rango puede ser exacto (1.2.3), comparativo (>=1.2.3), abierto (1.x), con guion (1.2.3 - 2.0.0) o alternativo (^1.2.3 || ~2.0.0).

Se ejecuta localmente en tu navegador
Esta herramienta procesa todos los datos localmente en tu navegador.
Versión y rangoAdmite versiones exactas, comparadores, rangos con caret, tilde y alternativas ||.

Cómo leer una versión y probar un rango

Escribe una versión y un rango y pulsa «Inspeccionar versión»: 2.4.1-beta.2+build.19 se separa en mayor, menor, parche, versión preliminar y metadatos de compilación, y el rango se prueba contra ella. Todo se ejecuta en este navegador, así que no se consulta ningún registro ni se instala ningún paquete.

El resultado sigue el semver de npm, la implementación que usan todos los gestores de paquetes: los rangos con los que npm instalaría una versión son los que coinciden aquí, incluida la regla que deja fuera las versiones preliminares de los rangos que no nombran ninguna. Un rango que la página no sabe leer se rechaza con un ejemplo en lugar de adivinarse.

  1. Introduce una versión completa de tres partes, como 2.4.1, 1.0.0-rc.1 o 2.4.1-beta.2+build.19. Se rechazan las versiones con una parte ausente, con un cero inicial o con un campo numérico mayor que 9007199254740991, igual que las rechaza npm.
  2. Escribe el rango en el segundo campo: una versión exacta, un comparador (>, >=, <, <=, =), un caret, una tilde (también ~>), un rango abierto como 1.x o 1.2.x, un rango con guion como 1.2.3 - 2.0.0, o una combinación separada por espacios o por ||.
  3. Deja el rango vacío para ver solo el informe de la versión, o pulsa «Cargar ejemplo» para probar la versión preliminar 2.4.1-beta.2+build.19 contra ^2.4.0 || ~3.1.0.
  4. Lee la línea del rango y la nota que aparece debajo: cuando una versión preliminar falla solo porque el rango no nombra ninguna preliminar con el mismo major.minor.patch, la página lo explica en lugar de responder únicamente «no coincide».
  5. Copia o descarga el informe y pulsa «Limpiar» para vaciar los dos campos.

La gramática de los rangos, la regla de las versiones preliminares de npm y los límites de esta página

Qué cubre la gramática de los rangos

1.2.3 y v1.2.3 nombran una sola versión; >, >=, <, <= y = se comparan con ella y se admite un espacio después del operador (>= 1.2.3). Dos comparadores en el mismo campo deben cumplirse a la vez (>=1.2.3 <2.0.0), mientras que || se satisface con cualquiera de las dos partes. ^1.2.3 acepta desde 1.2.3 hasta 2.0.0, ~1.2.3 acepta desde 1.2.3 hasta 1.3.0, y una parte abierta es un intervalo: 1.2 significa de 1.2.0 hasta 1.3.0, 1.x de 1.0.0 hasta 2.0.0, y * acepta cualquier versión sin versión preliminar.

Versiones preliminares y metadatos de compilación

Una versión preliminar solo coincide si el rango nombra una preliminar con el mismo major.minor.patch: ^2.4.0 no coincide con 2.4.1-beta.2, ^2.4.0-beta.1 sí coincide con 2.4.0-beta.2 y * no coincide con 1.2.3-beta. Los metadatos de compilación se ignoran al comparar versiones, por lo que 2.4.1+build.19 coincide con 2.4.1, y un identificador preliminar no puede empezar por cero (1.2.3-01 no es válido): las reglas que aplica npm son las que se aplican aquí.

Lo que esta página no hace

No consulta ningún registro, así que no puede decir qué versiones ha publicado un paquete, si una versión existe o qué instalaría npm. Una dist-tag como latest no es un rango y la página lo indica en lugar de adivinar. El resultado se calcula sobre la versión que escribes: no se descarga, se guarda ni se envía nada.

Herramientas recientes: