Skip to content

Estructura de versiones de NPM

¿Cómo se estructuran las versiones en NPM?

En NPM, las versiones siguen el esquema SemVer (Semantic Versioning), que utiliza tres números separados por puntos:

MAJOR.MINOR.PATCH

Por ejemplo: 2.5.3

  • MAJOR (2.x.x) – Cambia cuando se introducen cambios que rompen la compatibilidad con versiones anteriores (breaking changes).
  • MINOR (x.5.x) – Cambia cuando se agregan nuevas funcionalidades sin romper compatibilidad (Publicar una feature).
  • PATCH (x.x.3) – Cambia cuando se corrigen errores o se hacen pequeñas mejoras internas sin afectar la funcionalidad externa. (bugfix)

Uso de rangos en versiones

NPM permite especificar rangos de versiones. Uno de los más comunes es el caret (^).

¿Qué hace el caret (^)?

Cuando usas una versión con ^, como ^1.1.8, NPM permitirá instalar automáticamente versiones más recientes, siempre que no cambie la versión MAJOR. Es decir:

^1.1.8 → Puede instalar 1.1.9, 1.2.0, pero no 2.0.0

Esto es útil para mantener los paquetes actualizados automáticamente, sin romper la compatibilidad (en teoría).

Recomendación

Para proyectos sensibles o en producción, se recomienda:

  • Fijar versiones exactas (1.1.8) en lugar de rangos.
  • Usar herramientas como npm audit, npm-lock.json y servicios como Snyk para detectar vulnerabilidades.
  • Revisar los cambios antes de actualizar paquetes automáticamente.