Calculadora de rangos SemVer
Utilidades de API y paquetes para desarrolladores

Calculadora de Rangos y Satisfacción SemVer

Evalúe rangos de versionado semántico (SemVer) con intercalación (^), virgulilla (~), guiones, rangos X y versiones preliminares en tiempo real.

Privacidad 100% del lado del cliente
Cero transmisión al servidor
Ajustes:
Rango SemVer y entrada de candidatos
Normalized:>=18.2.0 <19.0.0-0 || >=19.0.0 <20.0.0-0
Tasa de satisfacción
50%(4 de 8 aprobadas)
Mínima versión compatible
v18.2.0
Máxima versión compatible
v19.0.1
EstadoVersión EvaluadaResultado y Motivo
Cumple18.2.0Satisfies clause #1 (^18.2.0): [18.2.0, 19.0.0)
Cumple18.3.1Satisfies clause #1 (^18.2.0): [18.2.0, 19.0.0)
Cumple19.0.0Satisfies clause #2 (^19.0.0): [19.0.0, 20.0.0)
Cumple19.0.1Satisfies clause #2 (^19.0.0): [19.0.0, 20.0.0)
Rechazado19.1.0-canary.1preDoes not satisfy any clause in the range expression.
Rechazado18.1.9Does not satisfy any clause in the range expression.
Rechazado20.0.0Does not satisfy any clause in the range expression.
Rechazado17.0.2Does not satisfy any clause in the range expression.

Motor SemVer 2.0 100% en el Navegador

Evaluación instantánea y determinista conforme a las especificaciones oficiales de npm y SemVer 2.0.

Confidencialidad sin Transmisión de Datos

Sus dependencias privadas, nombres internos de paquetes y etiquetas se procesan exclusivamente en la memoria local.

Soporte Completo de Sintaxis de Rangos

Evaluación exhaustiva de Caret (^), Tilde (~), rangos de guion (-), comodines (*, 1.x), OR lógico (||) y reglas de pre-lanzamiento.

Referencia técnica y guía de arquitectura

Calculadora de Rangos SemVer y Satisfacción de Versiones — Guía de referencia

Evalúe rangos de versionado semántico (SemVer) con intercalación (^), virgulilla (~), guiones, rangos X y versiones preliminares en tiempo real.

Parámetros clave y controles

Expresión de rango (Range Expression)String

Consulta de rango SemVer compatible con comparadores (>=, <), circunflejo (^), virgulilla (~), comodines (1.x, *), rangos de guion (1.0.0 - 2.0.0) y uniones (||).

Por defecto: ^1.2.3 || ~2.0.0
Versión objetivo (Target Version)String

Cadena de versión candidata a comparar contra el rango, con soporte para identificadores de versiones preliminares y metadatos de compilación.

Por defecto: 1.4.0
Incluir versiones preliminares (Include Pre-releases)Boolean

Al activarse, permite que las versiones preliminares (ej.: 1.3.0-rc.1) cumplan rangos sin comparadores explícitos de pre-lanzamiento.

Por defecto: false
Modo flexible (Loose Mode)Boolean

Habilita el análisis tolerante para versiones no canónicas, admitiendo prefijos 'v', omisión de dígitos de parche (ej.: 1.2) y espacios en blanco.

Por defecto: false

Consejos profesionales y mejores prácticas

Bajo las reglas de SemVer 2.0.0 y

Bajo las reglas de SemVer 2.0.0 y npm-semver, ^0.2.3 se restringe a >=0.2.3 <0.3.0, ya que los cambios incompatibles pueden ocurrir en versiones menores 0.x. Para ^0.0.3, se congela exactamente en 0.0.3.

Una versión que contiene un

Una versión que contiene un identificador preliminar (ej.: 1.2.3-alpha.1) NO satisfará rangos estándar como >=1.0.0 a menos que un comparador en el rango comparta la misma tupla [major, minor, patch].

Los rangos con guion requieren

Los rangos con guion requieren espacios obligatorios a ambos lados ('1.2.3 - 2.0.0'). Omitirlos ('1.2.3-2.0.0') hace que el analizador interprete '-2.0.0' como una etiqueta preliminar de 1.2.3.

Según la cláusula 10 de SemVer 2.0.0

Según la cláusula 10 de SemVer 2.0.0, los metadatos de compilación (+build.2024, +sha.c0ffee) carecen de peso en la precedencia: 1.0.0+1 y 1.0.0+999 poseen exactamente la misma jerarquía de satisfacción.

Errores comunes y solución de problemas

Una versión preliminar no satisface un rango amplio (p. ej., 2.0.0-rc.1 rechazada por >=1.0.0)

SemVer aísla deliberadamente las versiones preliminares para evitar incorporar código inestable en entornos productivos. Active 'Incluir versiones preliminares' o especifique límites como '>=1.0.0 || >=2.0.0-0'.

El analizador rechaza versiones con prefijo 'v' (p. ej., 'v1.4.2')

La norma canónica SemVer 2.0.0 prohíbe el prefijo 'v'. Active el 'Modo flexible' o normalice la cadena mediante semver.clean() antes de evaluar la satisfacción.

Comportamientos imprevistos entre virgulilla (~) y circunflejo (^) en dependencias

Tenga en cuenta que ~1.2.3 restringe las actualizaciones a versiones de parche (<1.3.0), mientras que ^1.2.3 admite mejoras menores (<2.0.0). Fije versiones exactas (1.2.3) si necesita compilaciones estrictamente reproducibles sin lockfile.

Preguntas frecuentes (FAQ)

¿Cuál es la diferencia fundamental entre los operadores circunflejo (^) y virgulilla (~)?▼

El circunflejo (^) admite actualizaciones que no modifiquen el dígito no nulo situado más a la izquierda de la tupla [major, minor, patch]. Por ejemplo, ^1.2.3 permite >=1.2.3 <2.0.0, mientras que ^0.2.3 permite >=0.2.3 <0.3.0. La virgulilla (~) permite actualizaciones de parche si se especifica la versión menor: ~1.2.3 permite >=1.2.3 <1.3.0 y ~1.2 permite >=1.2.0 <1.3.0.

¿Por qué un rango como '>=1.0.0 <3.0.0' no acepta '2.0.0-beta.1'?▼

En la especificación de npm semver, una versión preliminar solo puede satisfacer un rango si dicho rango contiene un comparador con su misma tupla [major, minor, patch]. Como ni 1.0.0 ni 3.0.0 coinciden con 2.0.0, la versión preliminar se excluye para proteger los despliegues automáticos.

¿Cómo se evalúa la precedencia entre identificadores de versiones preliminares?▼

Los identificadores preliminares se dividen por puntos y se comparan de izquierda a derecha. Los campos puramente numéricos se comparan numéricamente, mientras que los alfanuméricos se evalúan en orden ASCII. Los identificadores numéricos siempre tienen menor prioridad que los no numéricos (ej.: 1.0.0-1 < 1.0.0-alpha < 1.0.0-beta < 1.0.0).

¿Cómo se expanden los comodines y rangos X como '1.2.x' o '1.*'?▼

Los rangos X interpretan 'x', 'X' o '*' como comodines para los dígitos faltantes. '1.x' o '1.*' se expande a '>=1.0.0 <2.0.0-0'. '1.2.x' o '1.2.*' se expande a '>=1.2.0 <1.3.0-0'. Una cadena vacía o '*' coincide con cualquier versión SemVer válida (>=0.0.0).

¿Afectan los metadatos de compilación (+build) a la compatibilidad del paquete?▼

No. De acuerdo con el apartado 10 de SemVer 2.0.0, los metadatos de compilación se ignoran por completo al determinar la precedencia. Dos versiones que solo difieren en metadatos (como 1.0.0+build1 y 1.0.0+build2) satisfacen exactamente los mismos rangos.

Herramientas y utilidades relacionadas

Todas las herramientas →