— — — Analiza, compara y verifica rangos de versiones semánticas — soporta ^, ~, >=, <, rangos x y ||.
No se recuperan URLs remotas; pega tu JSON directamente.
— — — — — Semantic Versioning (SemVer) es la convención mayor.menor.parche que la mayoría de las librerías usan para señalar qué tipo de cambio contiene una release: una corrección de bug sube parche, las adiciones compatibles hacia atrás suben menor, y los cambios rompedores suben mayor. Añade una etiqueta de preliminar (1.0.0-beta.1) o metadatos de compilación (+exp.sha.1) y obtienes la gramática completa definida en semver.org 2.0.0.
El problema es que «comparar dos versiones» y «¿esta versión satisface mi rango de dependencia?» son cosas fáciles de errar a ojo. ¿Es 1.0.0 mayor o menor que 1.0.0-beta? (Mayor: una release siempre supera a su preliminar.) ¿Satisface 1.2.3 el rango ^1.2.0? (Sí.) ¿Y ~1.2.0? (También, pero por una razón más ajustada.) Esta página analiza las versiones como las define la especificación, te muestra los componentes, compara dos versiones por precedencia y responde a consultas de rango con la misma sintaxis ^ / ~ / >= / || / guion que usa un package.json, todo localmente y contra las reglas reales, no contra una suposición.
v o un = iniciales; 1.2.3-beta.1+build.42 se analiza hasta sus partes.^1.2.0 || >=2.0.0 <3.0.0, dos conjuntos unidos por OR, como se escriben los rangos reales de dependencia. Sintaxis admitida: ^ (acento circunflejo), ~ (tilde), >= <= > < =, comodines x / X / *, versiones parciales (1.2), rangos con guion - y || para unir conjuntos con OR.clean y los campos desglosados major, minor, patch, prerelease y build. Una versión inválida pone roja su tarjeta con un mensaje.A < B, A = B o A > B por precedencia, además del diff: el componente superior que cambió (mayor, menor, parche, preliminar o compilación).major.minor.patch y luego los identificadores de preliminar, con la regla de que una versión sin preliminar siempre supera a una con él. Los identificadores numéricos se comparan numéricamente (beta.2 < beta.11); los alfanuméricos, léxicamente; y los numéricos siempre se sitúan por debajo de los alfanuméricos. Los metadatos de compilación se analizan y muestran, pero nunca afectan a la precedencia.^1.2.3 se convierte en >=1.2.3 <2.0.0; ^0.2.3, en >=0.2.3 <0.3.0; ^0.0.3, en >=0.0.3 <0.0.4 (la regla del «componente no nulo más a la izquierda» del circunflejo). La tilde fija el menor: ~1.2.3 es >=1.2.3 <1.3.0.||, guiones y comodines. ^1.0.0 || >=2.0.0 <3.0.0 (OR de dos conjuntos), 1.2.0 - 1.5.0 (rango inclusivo con guion), 1.x / 1.2.* (rangos con comodín) se analizan y comprueban.major.minor.patch. Así, 1.5.0-rc.1 no satisface ^1.2.0, pero sí satisface ^1.5.0-rc.0, igual que los gestores de paquetes reales mantienen aleatorios preliminares fuera de tus builds de release.1.2.3 a 2.0.0 muestra mayor, y de 1.0.0 a 1.0.0 con un build cambiado muestra compilación aunque la precedencia no cambie.v inicial, un = inicial y los espacios en blanco alrededor, así las versiones copiadas de una etiqueta git o de un changelog se analizan sin limpieza manual.Con los valores por defecto (A 1.2.3, B 2.0.0, rango ^1.2.0 || >=2.0.0 <3.0.0), la página informa:
A clean 1.2.3 (major 1, minor 2, patch 3)
B clean 2.0.0 (major 2, minor 0, patch 0)
compare 1.2.3 < 2.0.0
diff major
range A satisfies B satisfies
Ambas versiones satisfacen el rango, pero por razones distintas: A cae dentro del primer conjunto OR (^1.2.0 → >=1.2.0 <2.0.0), B cae dentro del segundo (>=2.0.0 <3.0.0). Cambia B a 3.0.0 y su insignia pasa a no satisface: el límite superior <3.0.0 la excluye.
Para ver la regla de preliminar en acción, pon A en 1.5.0-rc.1 y B en 1.5.0, y mantén el rango como ^1.5.0-rc.0. Ahora A satisface (mismo 1.5.0, el rango lleva una etiqueta preliminar coincidente), mientras que un ^1.5.0 simple no dejaría pasar a 1.5.0-rc.1: la puerta existe justamente para mantener candidates fuera de la resolución de dependencias de release hasta que tú decidas incluirlas.
1.0.0 mayor que 1.0.0-beta?#Sí. Una versión sin etiqueta preliminar tiene siempre mayor precedencia que una con etiqueta preliminar, incluso en el mismo major.minor.patch. Así, 1.0.0 > 1.0.0-rc.1 > 1.0.0-beta.11 > 1.0.0-alpha. Por eso una release que «llega a oro» es un incremento real de precedencia, no solo un cambio de etiqueta.
^ y ~?#El circunflejo permite actualizaciones que no modifican el componente no nulo más a la izquierda: ^1.2.3 admite cualquier 1.x.x desde 1.2.3 hasta (sin incluir) 2.0.0. La tilde es más estricta: cuando se le da una versión completa, fija el menor; ~1.2.3 admite solo 1.2.x. Con solo el mayor (~1), tilde y circunflejo permiten ambos todo el rango del mayor. La mayoría de las librerías fijan con ^; los parches a tus propios paquetes publicados usan a menudo ~.
^1.0.0?#Por diseño. Una preliminar como 1.5.0-rc.1 solo satisface un rango cuando algún comparador del mismo conjunto AND lleva una preliminar en el mismo 1.5.0. ^1.0.0 se desazucara a >=1.0.0 <2.0.0-0 sin preliminar en 1.5.0, así que la puerta impide que tu build de release se traiga un candidate aleatorio de alguien. Si quieres incluirlo, escribe ^1.5.0-rc.0 explícitamente.
No. 1.0.0+exp.sha.5 y 1.0.0+exp.sha.6 tienen la misma precedencia: los metadatos de compilación sirven solo para identificación. El analizador los muestra (y el diff informa de un cambio build cuando solo difieren los metadatos), pero nunca deciden un orden.
Visitantes únicos (este dispositivo/navegador se cuenta una sola vez)
Este sitio muestra anuncios a través de Google AdSense. Usamos cookies para la medición y personalización de anuncios. Elige si deseas permitir anuncios personalizados.