JS: Configuración del entorno
Teoría: Archivo de bloqueo
En esta lección, vamos a aprender a manejar las dependencias de un proyecto usando npm. No te asustes: lo vamos a hacer paso a paso, como si estuviéramos trabajando en un mismo equipo.
Al final, vas a saber cómo actualizar paquetes sin dañar tu aplicación, entender cómo funcionan las versiones en package.json y qué es ese archivo llamado package-lock.json que muchas veces ignoramos.
¿Por qué debemos actualizar las dependencias?
Las bibliotecas que usamos en nuestros proyectos siempre están cambiando. Se actualizan constantemente para:
🐞 Corregir errores (bugs)
⚡ Hacer el código más rápido
✨ Agregar nuevas funcionalidades
Por eso, es importante saber actualizarlas de forma segura.
¿Cómo actualizamos con npm?
Si estamos trabajando con un proyecto que usa npm (el gestor de paquetes de Node.js), hay dos formas comunes de actualizar dependencias:
Actualizar todas las dependencias
Este comando intenta actualizar todos los paquetes de acuerdo con lo que esté permitido en tu archivo package.json.
Actualizar una dependencia específica
Este comando actualiza solo el paquete que indiques, si es que hay una versión más reciente compatible con lo que pusiste en package.json.
Definir las versiones en package.json
En el archivo package.json definimos qué versiones de cada dependencia necesitamos. Vamos a ver un ejemplo:
¿Cuál opción deberíamos usar?
⚠️ "*": Muy riesgoso. Puedes terminar instalando algo que rompa tu código.
🔒 "1.3.5": Súper seguro, pero quedarás con versiones viejas (sin mejoras ni parches).
✅ "~" y "^": Son las más recomendadas. Permiten actualizaciones controladas.
El archivo de bloqueo: package-lock.json
Cuando instalamos dependencias con npm, se genera automáticamente un archivo llamado package-lock.json.
Este archivo sirve para:
-
Guardar las versiones exactas que se instalaron (incluyendo las dependencias internas de otros paquetes, conocidas como dependencias transitivas).
-
Garantizar que todos en el equipo de desarrollo tengamos las mismas versiones.
-
Evitar sorpresas al instalar nuevas versiones sin que nos demos cuenta.
¿Qué son las dependencias transitivas?
Ejemplo:
Imagina que instalamos una biblioteca A:
- Nosotros instalamos A.
- Pero A necesita B para funcionar. Entonces, npm instala también B.
Esto puede volverse un problema si B se actualiza y deja de ser compatible con A, o si rompe algo en nuestro código. A esta situación se le conoce como: el infierno de las dependencias transitivas 😈
Por eso es que package-lock.json es tan importante: evita que se instalen versiones inesperadas de esas dependencias.
Ejemplo de package-lock.json
Este archivo guarda exactamente qué versión de cada paquete (y subpaquete) fue instalada. Así, si alguien más clona el proyecto, tendrá la misma configuración.

¿Cómo garantizar que todos en el equipo usen las mismas versiones?
Si varias personas trabajan sobre el mismo proyecto o vas a instalar dependencias en producción, lo ideal es usar:
Este comando:
-
Instala exactamente las versiones que están en package-lock.json.
-
Borra la carpeta node_modules y reconstruye todo desde cero.
-
Es más rápido y predecible que
npm install.
Úsalo especialmente en:
-
Servidores
-
Entornos de producción
-
Proyectos colaborativos
-
Sistemas de integración continua (como GitHub Actions o Docker)
Resumen
- Las dependencias deben actualizarse para recibir mejoras y parches de seguridad.
- Usa
npm updatepara actualizar todas, onpm update nombre-del-paquetepara una sola. - En package.json<, los símbolos
~y^permiten actualizar versiones sin perder compatibilidad. - El archivo package-lock.json fija versiones exactas, incluyendo las dependencias transitivas.
- No edites package-lock.json a mano: npm lo maneja automáticamente.
- Usa
npm cipara asegurar que se instalen siempre las mismas versiones en todos los entornos.
Si entiendes bien cómo funcionan las versiones y el sistema de bloqueo de npm, podrás mantener tus proyectos actualizados sin miedo a que algo se rompa.
Completado
0 / 11