search

Found

info Descripción

Comprueba si una versión coincide con un rango: circunflejos, tildes, rangos x, comparadores y guion hasta las versiones mínima y máxima permitidas.

📘 Cómo usar

  1. Escribe la versión a comprobar en el campo Versión
  2. Escribe la expresión de rango en el campo Rango
  3. Lee el Resultado, la Versión mínima y la Versión máxima

Verificador de Rango SemVer

Resultado
Significado del rango
Versión mínima
Versión máxima
Análisis
Article

Verificador de Rango SemVer | Comprueba ^ ~ y rangos de versión

Escribe una versión y una expresión de rango para ver si la versión lo satisface. La herramienta interpreta acentos circunflejos (^), tildes (~), rangos x (1.x), comparadores (>=1.0.0 <2.0.0) y rangos con guion (1.0.0 - 2.0.0), y muestra un veredicto Coincide / No coincide junto con las versiones mínima y máxima que el rango permite.

💡 Sobre esta herramienta

Si alguna vez has mirado una dependencia en package.json y te has preguntado "¿^1.2.3 realmente permite 1.9.0?", esta es la máquina de respuestas. Los operadores de rango de SemVer parecen sencillos, pero cada uno define una ventana distinta. ^1.2.3 permite todo hasta 2.0.0 sin incluirlo. ~1.2.3 es mucho más estricto: solo cambios de parche dentro de 1.2.x. Y el circunflejo cambia de comportamiento por debajo de 1.0.0: ^0.2.3 solo permite 0.2.x, porque los menores previos a 1.0 se consideran rupturas.

El panel de mínimo y máximo es lo que ahorra tiempo de depuración. En lugar de expandir mentalmente el operador, ves las versiones límite ya resueltas, con para rangos abiertos como >=1.0.0. Junto con la explicación en lenguaje claro, puedes revisar la resolución de un lockfile o una propuesta de actualización en segundos, sin instalar el paquete semver ni abrir un REPL.

🧐 Preguntas Frecuentes

¿^1.2.3 incluye 2.0.0? No. El circunflejo permite >=1.2.3 <2.0.0, así que 2.0.0 queda justo fuera de la ventana. El panel de Versión máxima muestra el techo 1.x.

¿Cuál es la diferencia entre ^ y ~? El circunflejo permite cambios que no modifican el segmento no nulo más a la izquierda (normalmente menor y parche). La tilde solo permite cambios de parche cuando se indica un menor, así que ~1.2.3 admite 1.2.x pero no 1.3.0.

¿Por qué ^0.2.3 se comporta distinto? Por debajo de 1.0.0, SemVer trata cada cambio de menor como potencialmente rupturista. Por eso ^0.2.3 se resuelve como >=0.2.3 <0.3.0 y no como <1.0.0.

¿Cómo se manejan las preversiones como 1.0.0-beta? Una preversión tiene menor precedencia que su versión final, así que 1.0.0-beta se ordena antes de 1.0.0. El verificador analiza la etiqueta de preversión y la ordena en consecuencia al comprobar el rango.

¿Puedo comprobar rangos compuestos? Sí. Los comparadores separados por espacios se combinan con Y (>=1.0.0 <2.0.0), y || permite combinar rangos completos con O. La línea de explicación indica qué lógica se aplica.

📚 Datos Curiosos

El Versionado Semántico fue popularizado por Tom Preston-Werner, cofundador de GitHub, que publicó la especificación SemVer en 2010 para combatir lo que llamó el "infierno de dependencias". Los operadores ^ y ~ que la mayoría usa a diario en realidad no forman parte del núcleo de la especificación SemVer: provienen de la librería node-semver de npm, que se convirtió en la gramática de facto cuando npm adoptó los rangos con circunflejo como prefijo de guardado por defecto. Ese valor por defecto explica por qué tu package.json está lleno de circunflejos: al ejecutar npm install lodash, npm escribe ^4.17.21, suscribiéndote en silencio a todas las futuras versiones menores y de parche de la línea 4.x. Otros ecosistemas tomaron la idea pero ajustaron las reglas: Cargo, de Rust, trata un requisito 1.2.3 simple como circunflejo por defecto.