Herramientas Semver (Parser, Comparador, Incremento)
Trabajar con npm, Cargo, módulos de Go o cualquier ecosistema de paquetes significa mirar cadenas de versiones semánticas — y equivocarse (tratar 1.10.0 como menor que 1.9.0, perderse una etiqueta prerelease) es el tipo de error que cuesta horas. Esta herramienta parsea dos versiones en sus componentes (major, minor, patch, prerelease, build), las compara según la especificación oficial de semver.org incluyendo orden correcto de prerelease, y ofrece botones de incremento de un clic. Debajo, el expansor de rango convierte la sintaxis npm más común (^1.2.3, ~1.2.3, ~1.2, ^0.x.y para APIs inestables) en los límites explícitos ≥inferior <superior — útil cuando una herramienta solo acepta esa forma.
Comparación
B es mayor que A
Coincide con
≥ 1.2.3·< 2.0.0Cómo usar
- Escribe una versión en cada entrada (Versión A y B); los componentes parseados y la comparación se actualizan en vivo.
- Haz clic en un botón de incremento (Mayor / Menor / Parche / Prerelease) bajo cada versión para avanzarla — útil para planear un release.
- En el expansor de rango, escribe un rango como ^1.2.3 o ~1.2 — aparecen los límites; usa Copiar para obtener la cadena ≥a.b.c <x.y.z.
Preguntas frecuentes
- ¿Cómo funciona el orden de prerelease?
- Por especificación, una versión con prerelease (1.0.0-alpha) es menor que la misma sin él (1.0.0). Dentro de los prereleases, los identificadores se comparan de izquierda a derecha: los numéricos numéricamente, los alfanuméricos léxicamente, y los numéricos siempre rankean menos que los alfanuméricos en la misma posición. Así que 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0.
- ¿Por qué ^0.2.3 se expande a <0.3.0, no <1.0.0?
- El caret en npm trata 0.x.y de forma especial porque las APIs pre-1.0 son inestables: una bump en 0.x se trata como breaking. Así ^0.2.3 solo matchea 0.2.x, y ^0.0.3 solo matchea 0.0.3 exactamente. Es el mismo comportamiento que usa npm.
- ¿La metadata de build afecta comparaciones?
- No — por especificación, +build es solo informativo y se ignora al comparar versiones. 1.0.0+abc y 1.0.0+xyz son iguales.
- ¿Qué sintaxis de rango se soporta aquí?
- El expansor maneja ^x[.y[.z]], ~x[.y[.z]] y x o x.y solos (que se comportan como ~x y ~x.y respectivamente). Rangos combinados como '>=1.0.0 <2.0.0' o wildcards como '1.x' no se expanden — pero igual puedes parsear cada versión por separado.
Herramientas relacionadas
Comparador de precio por unidad
Compara productos de supermercado por precio por unidad (gramo, mL o pieza). Grupos de masa, volumen y conteo con unidades métricas e imperiales.
Comparar listas — intersección, unión y diferencia
Compara dos listas línea por línea: elementos comunes, únicos de cada una, unión o diferencia simétrica, en tu navegador.
Inspector de UUID (versión, variante, tiempo)
Pega cualquier UUID para ver su versión (1–8), variante y —en los basados en tiempo v1, v6 y v7— la marca de tiempo de creación incrustada, la secuencia de reloj y el nodo/MAC, todo decodificado en tu navegador.
Generador de mensajes Conventional Commits
Crea un mensaje de Conventional Commits con tipo, alcance, cambio incompatible y pies, en tu navegador.
Constructor de JSON Patch (RFC 6902)
Genera un JSON Patch RFC 6902 desde un par source/target, o aplica un patch existente a un documento. Soporta ops add, remove, replace, move, copy, test.
Visor de Diferencias de JSON
Compara dos documentos JSON estructuralmente — mira exactamente qué claves se añadieron, quitaron o cambiaron.