Guía rápida del versionado semántico y los rangos de npm

Qué significa MAJOR.MINOR.PATCH, cómo se expanden ^, ~, rangos con x, rangos con guion y ||, cómo se ordenan las versiones preliminares y qué versiones acepta cada rango, comprobado con npm semver 7.8.5.

Última revisión:

AdSense Placeholder
Slot: header_reference_page
En esta página

Una versión semántica es MAJOR.MINOR.PATCH: se sube MAJOR para cambios incompatibles, MINOR para funciones compatibles y PATCH para correcciones compatibles. Los gestores de paquetes describen las versiones aceptables con rangos. Pruebe cualquier rango con cualquier versión en Comprobador de Rangos Semver; la idea que hay detrás de los números está en Versionado semántico (SemVer).

Operadores de rango

Rango Se expande a Coincide (ejemplos) No coincide
^1.2.3 >=1.2.3 <2.0.0 1.2.3, 1.9.9 2.0.0, 1.2.2
~1.2.3 >=1.2.3 <1.3.0 1.2.3, 1.2.9 1.3.0, 1.2.2
^0.2.3 >=0.2.3 <0.3.0 0.2.3, 0.2.9 0.3.0, 0.2.2
^0.0.3 >=0.0.3 <0.0.4 0.0.3 0.0.4, 0.0.2
^1.2 >=1.2.0 <2.0.0 1.2.0, 1.9.9 2.0.0, 1.1.9
~1 >=1.0.0 <2.0.0 1.0.0, 1.9.9 2.0.0, 0.9.9
1.x >=1.0.0 <2.0.0 1.0.0, 1.9.9 2.0.0, 0.9.9
1.2.x >=1.2.0 <1.3.0 1.2.0, 1.2.9 1.3.0, 1.1.9
>=1.2.7 <1.3.0 >=1.2.7 <1.3.0 1.2.7, 1.2.99 1.3.0, 1.2.6
1.2.3 - 2.3.4 >=1.2.3 <=2.3.4 1.2.3, 2.3.4 2.3.5, 1.2.2
<2.0.0 || >=3.0.0 <2.0.0 || >=3.0.0 1.9.9, 3.0.0 2.5.0, 2.0.0
^1.2.3-beta.2 >=1.2.3-beta.2 <2.0.0 1.2.3-beta.2, 1.2.3 1.2.3-beta.1, 2.0.0

Versiones preliminares

Las versiones preliminares se ordenan por debajo de la versión final que preceden, y sus identificadores se comparan campo a campo (los números numéricamente, las palabras alfabéticamente y un conjunto más largo de campos después de uno más corto):

1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0

Un rango solo acepta una versión preliminar cuando el propio rango nombra una preliminar con el mismo MAJOR.MINOR.PATCH. Así, >1.2.3 no acepta 1.3.0-beta, mientras que ^1.2.3-beta.2 acepta 1.2.3-beta.4. La mayoría de las herramientas ofrecen una opción para incluir las preliminares de forma explícita.

Reglas rápidas

  • ^ permite cambios que no modifiquen el primer número distinto de cero por la izquierda. Por debajo de 1.0.0, eso hace que ^0.2.3 sea tan estricto como ~0.2.3.
  • ~ permite cambios de parche cuando se indica la versión menor (~1.2.3) y cambios de versión menor cuando solo se indica la mayor (~1).
  • Un espacio entre comparadores significa Y; || significa O.
  • Los metadatos de compilación tras + (1.0.0+20261028) se ignoran al comparar versiones.
  • Incrementos: 1.2.3 pasa a 1.2.4 (parche), 1.3.0 (menor) o 2.0.0 (mayor); 1.2.3-beta.1 pasa a 1.2.3-beta.2.
  • La PEP 440 de Python usa otros operadores (~=, ==1.*) y otras grafías (1.0rc1); Cargo sigue por defecto las reglas del acento circunflejo de npm.

Pruebe estas herramientas

Véase también

AdSense Placeholder
Slot: footer_leaderboard