4 - Gestión de paquetes

Objetivo del tema

Aprenderás a administrar dependencias con npm: instalar paquetes de manera local o global, mantenerlos actualizados, eliminarlos cuando dejan de ser necesarios y controlar versiones específicas, incluso cuando necesitas incorporar varios paquetes al mismo tiempo.

4.1 Instalar paquetes locales (npm install paquete)

La instalación local es la acción más frecuente dentro de un proyecto. Descarga el paquete desde el registro, lo ubica en node_modules/ y registra la dependencia en package.json. Consulta la documentación oficial del comando en npm install.

npm install express
  • Si el paquete exporta binarios (por ejemplo, eslint), npm agrega accesos directos en node_modules/.bin.
  • Desde npm 5 en adelante no es necesario usar --save; la dependencia queda documentada automáticamente.
  • Para dependencias de desarrollo utiliza --save-dev o su alias corto -D.

4.2 Instalar paquetes globales (npm install -g paquete)

Una instalación global pone el paquete a disposición de todos los proyectos del sistema operativo. Es ideal para herramientas de línea de comandos que ejecutas desde cualquier carpeta, como npm-check-updates.

npm install -g npm-check-updates
  • El binario se copia en un directorio incluido en el PATH de tu sistema.
  • En entornos corporativos podrías necesitar permisos elevados (como sudo en Linux) o configurar un prefix personalizado en el archivo .npmrc.
  • No uses dependencias globales para ejecutar tu aplicación en producción; documenta siempre lo necesario en package.json para garantizar reproducibilidad.

4.3 Actualizar paquetes (npm update)

Mantener las dependencias al día reduce riesgos de seguridad y aprovecha mejoras. Con npm update actualizas todas las dependencias que respeten las restricciones de versión definidas en package.json. Revisa las opciones disponibles en la documentación de npm update.

npm update

Para inspeccionar qué paquetes tienen versiones más recientes utiliza npm outdated. Si necesitas actualizar un paquete puntual, especifícalo por nombre:

npm update express

En entornos globales puedes ejecutar npm update -g, pero recuerda revisar compatibilidades con herramientas que utilicen esos binarios.

4.4 Eliminar paquetes (npm uninstall)

Cuando una dependencia deja de ser necesaria, elimínala para reducir el tamaño del proyecto y evitar vulnerabilidades. La guía oficial de npm uninstall detalla las variantes disponibles.

npm uninstall express
  • El comando borra la carpeta del paquete, lo quita de package.json y actualiza package-lock.json.
  • Para paquetes de desarrollo agrega el indicador correspondiente: npm uninstall --save-dev jest.
  • Si la instalación fue global, usa npm uninstall -g nombre-paquete.

4.5 Instalar versiones específicas (npm install paquete@version)

npm permite fijar la versión exacta que deseas instalar mediante la notación @. Esto es útil para garantizar compatibilidad con librerías o entornos que todavía no soportan la última versión.

npm install react@18.2.0
  • Puedes apuntar a etiquetas como @latest, @next o @beta si el mantenedor las publica.
  • Las restricciones semánticas (^, ~, >=) se definen en package.json; reinstalar con el operador deseado, por ejemplo npm install lodash@^4.17.21, actualiza automáticamente el manifiesto.
  • Documenta en el README cualquier versión fijada de manera intencional para facilitar la colaboración.

4.6 Instalar múltiples paquetes en una sola línea

Para acelerar la configuración inicial puedes instalar varias dependencias de una sola vez. npm procesa la lista de izquierda a derecha y registra todas las entradas en package.json.

npm install express cors dotenv

Combina indicadores para clasificar dependencias en un solo comando:

npm install express cors && npm install --save-dev typescript eslint

Otra opción es usar npm install express@^4.18 cors@2 dotenv@16 para especificar rangos distintos. Para orquestar varias tareas complejas considera utilidades como npm-run-all, aunque bastan los scripts vistos en el tema anterior para la mayoría de los flujos.

Resumen didáctico

Con estas operaciones dominarás el ciclo de vida de una dependencia: incorporarla, mantenerla actualizada, fijar versiones concretas o retirarla cuando deja de aportar valor. En el próximo tema pondrás el foco en automatizar tareas mediante scripts personalizados.