Package lock y el uso los símbolos ^ y ~
Clase 9 de 18 • Curso de Gestión de Dependencias y Paquetes con NPM
Contenido del curso
Instalación
Configuración
- 5

Iniciar un proyecto
08:10 min - 6

Instalación de dependencias
10:34 min - 7

Instalación de dependencias con force
04:23 min - 8

Cómo actualizar y eliminar paquetes
06:44 min - 9

Package lock y el uso los símbolos ^ y ~
Viendo ahora - 10

Ejecutar tareas
03:52 min - 11

Solución de problemas en proyectos con NPM
09:09 min - 12

Gestionar la seguridad en proyectos con NPM
04:04 min
Publicar un paquete
El archivo package-lock.json describe todo el árbol de dependencias de cada paquete instalado. Cuando alguien hace fork de un repositorio no tiene el directorio node_modules.
Con el comando npm install se instalarán las dependencias indicadas en el package.json con la versión indicada. También, se instalarán las sub-dependencias indicadas en package-lock.json con la versión indicada. Pero, ¿qué significan estas diferentes versiones en cada dependencia?
Versionado de paquetes
El versionado de paquetes está conformado por tres valores:
- Major: el valor que muestra la versión que contiene los cambios importantes del paquete
- Minor: el valor que muestra la versión que contiene los cambios en funcionalidades, pero no representan un cambio significativo
- Patch: el valor que muestra la versión que contiene cambios rápidos para solucionar problemas de seguridad o bugs

Símbolos ^ y ~ para actualizar las versiones minor y patch
Existen dos símbolos que acompañan a este versionado, que sirven para actualizar las versiones minor y patch del paquete:
- Caret (^): Permite actualizar las versiones minor y patch
- Tilde (~): Permite actualizar las versiones patch
Por ejemplo, tenemos la versión “5.2.3”:
- Si tiene el carret
^, actualizará la versión minor y patch, por lo que tendrás versiones como “^5.3.3”, “^5.4.3”, “^5.4.4”, etc. - Si tiene la tilde
~, actualizará la versión de patch, por lo que tendrás versiones como “~5.2.4”, “~5.2.5”, “~5.2.6”, etc.
Lo recomendable es quitar estos símbolos y tener la versión exacta para evitar problemas de versionado, principalmente con paquetes que los mantienen pocas personas o no son fiables.
Contribución creada con aportes de: Andrés Guano.