En este post detallaré el sistema de versionado que utilizan los paquetes del repositorio npm y su relación con el archivo package.json. Este sistema se llama "versionado semántico" o "semver".

La nomenclatura para indicar la versión de un paquete es la siguiente:

Versión mayor: 1.0.0

La versión mayor está indicada en el primer número. Este número se incrementa cuando hay un cambio grande en el software, con muchas características nuevas. Puede o no añadir incompatibilidades con las versiones anteriores. Por ejemplo la 2.0.0 es una versión mayor que puede ser incompatible con la 1.9.9.

Versión menor: 1.1.0

La versión menor está indicada en el número del medio y se incrementa con nuevas características añadidas al paquete. 

Versión parche: 1.1.1

Se indica con el tercer número y se usa para introducir correcciones de errores dentro del código. 

Como consumidores de los paquetes utilizamos el archivo package.json para indicar que actualizaciones aceptaríamos en nuestro proyecto.  ¿Cómo lo indicamos? Si queremos aceptar solo las versiones parche de la versión 1.0, lo indicaríamos de alguna de estas tres maneras:

1.0

1.0.x

~1.0.0

Por ejemplo, si tenemos la siguiente línea en el package.json:

"lite-server""1.0.x"

y estuviera disponible la versión 1.0.3, al ejecutar npm update, esa es la versión que se instalaría ya que es un parche nuevo. En cambio, si estuviera disponible la versión 1.1.0, esta versión no se instalaría ya que es una versión menor nueva, no un parche.

Lite -server

El comando:

npm outdated lite-server

Nos muestra la versión que se instalaría en la columna wanted.

npm outdated lite-server


En el caso que quisieramos actualizar a las versiones menores de la versión 1 se pude indicar así:

1

1.x

^1.0.0

Por ejemplo, si tenemos la siguiente línea:

"lite-server""1.x"

y estuviera disponible la versión 1.3.4 la instalaría, ya que es una versión menor nueva. Pero si estuviera disponible la 2.0.0 no la haría, porque es una versión mayor.

Lite -server 2

 

Comando ppm uutdated lite-server

 

Por último, si quiero aceptar las versiones mayores utilizaría:

*

x

Si tenemos la siguiente línea:

"lite-server": "x"

y estuviera disponible la versión 2.3.0, la instalaría.

 

Lite -server5

 

Comando ppm uutdated lite-server