¿Cómo funcionan las versiones de los paquetes de NPM?

Hoy vamos a entender que es el versionamiento semántico y como funciona en nuestros proyectos de NodeJS.

Rodríguez Patiño, Eduardo
2020-09-27 | 446 lecturas

Teniendo claro que es el package.json, vamos ahora a entender como funciona el versionamiento a través de NPM.

@kodoti/package

Supongamos que hemos creado un paquete para KODOTI por lo cual tenemos la siguiente versión.

1.0.0

Vamos analizar nuestra versión.

  • 1: la versión actual del paquete (major release).
  • 0: nuevas funcionalidades dentro de nuestro paquete (minor release).
  • 0: correcciones de bug (patch release).

Ejercicio

Veamos algunos escenarios para entender cuando actualizar dichos paquetes.

Correcciones de bug

Cuando hemos corregido un bug.

1.0.1

Nuevas funcionalidades

Cuando agregamos nuevas funcionalidades a nuestro paquete pero que no rompe nada de la implementación actual.

1.1.0

Nueva versión completa del paquete

Hay que tener en cuenta que esta versión cambia todo el paquete por completo.

2.0.0

Comodines usados en los paquetes

Seguramente han visto que las versiones de los paquetes que instalan a través de NPM vienen acompañado de comodines o caracteres como "~", "^", ">" y no tienes idea para que están.

~1.2.0

Esto le va a indicar a nuestro package.json que cuando se ejecuté el comando npm-install siempre se obtenga la versión más reciente del patch release.

Es decir, que solo se va a considerar desde el 1.2.0 hasta la versión 1.2.x sin llegar al 1.3.0.

^1.2.0

En este caso afecta al minor release.

Desde la versión 1.2.0 hasta la 1.x.0 sin llegar al 2.0.0.

>1.2.0

Afecta directamente al major release.

Desde la versión 1.0.0 hasta la x.0.0.

Package-lock.json

El package-lock.json introducido en las versiones recientes de NPM lo que hace es bloquear estas versiones para evitar que cuando se instalen los paquetes se considere siempre las últimas versiones.

A practicar

Les comparto un enlace para que puedan practicar el uso del versionamiento.