Introducción a NPM: el gestor de paquetes que acompaña todo proyecto JavaScript

Descubre qué es NPM, por qué lo necesitas en cada proyecto y cómo se relaciona con el ecosistema JavaScript moderno. Aprende a distinguir npm de otros competidores y prepárate para el flujo de trabajo diario.

NPM no es opcional en el desarrollo JavaScript moderno: es el pegamento que mantiene unido todo el ecosistema. Cada vez que ejecutas `npm install` estás confiando en que miles de desarrolladores han resuelto problemas que tú no necesitas resolver desde cero.

En esta introducción vamos a entender por qué npm existe, qué problemas resuelve y cómo se diferencia de alternativas como yarn o pnpm. El objetivo no es memorizar comandos, sino entender el flujo mental de trabajar con dependencias.

Al terminar esta lección sabrás qué es un package.json, por qué lo necesitas y tendrás tu primer proyecto inicializado con npm.

  • NPM es el gestor de paquetes por defecto del ecosistema JavaScript.
  • NPM (Node Package Manager) surge de la necesidad de compartir y reutilizar código entre desarrolladores. Antes de npm, integrar librerías significaba copiar archivos manualmente, actualizar dependencias era un caos y versionar código compartido era prácticamente imposible.
  • Un package manager resuelve tres problemas clave: instalación consistente (todosinstalan la misma versión), gestión de dependencias (incluye las dependencias de tus dependencias, llamadas transitive) y versionado semántico (controles qué nivel de cambios aceptas).
  • Instalar librerías de terceros sin copiar archivos
  • Gestionar versiones de forma predictible

Qué es NPM y por qué importan los package managers

NPM es el gestor de paquetes por defecto del ecosistema JavaScript.

NPM (Node Package Manager) surge de la necesidad de compartir y reutilizar código entre desarrolladores. Antes de npm, integrar librerías significaba copiar archivos manualmente, actualizar dependencias era un caos y versionar código compartido era prácticamente imposible.

Un package manager resuelve tres problemas clave: instalación consistente (todosinstalan la misma versión), gestión de dependencias (incluye las dependencias de tus dependencias, llamadas transitive) y versionado semántico (controles qué nivel de cambios aceptas).

  • Instalar librerías de terceros sin copiar archivos
  • Gestionar versiones de forma predictible
  • Compartir tu propio código con la comunidad
  • Automatizar tareas del flujo de desarrollo

NPM vs yarn vs pnpm: por qué npm sigue siendo la opción por defecto

El ecosistema tiene alternativas, pero npm sigue siendo el estándar.

yarn, lanzado por Facebook en 2016, introdujo mejoras de velocidad y caché que npm no tenía. pnpm apareció después con un enfoque más eficiente de almacenamiento usando hard links. Sin embargo, npm ha evolucionado significativamente: npm 7+ incluye workspaces nativos y mejoras de rendimiento que reducen la brecha.

Para proyectos personales o equipos que se integran con herramientas externas, npm ofrece la máxima compatibilidad. yarn y pnpm tienen sus casos de uso específicos, pero dominar npm te permite trabajar en cualquier proyecto sin aprender gestores nuevos.

  • npm: estándar, mejor compatibilidad, evolución constante
  • yarn: velocidad y caché mejorados, lockfile estable
  • pnpm: eficiente en disco, estructura de node_modules diferente

El archivo package.json: el corazón de todo proyecto npm

Todo proyecto npm parte de un archivo package.json.

El package.json es un archivo JSON que metadata del proyecto: nombre, versión, descripción, punto de entrada, scripts y, lo más importante, la lista de dependencias. Funciona como un contrato entre tu proyecto y quienes lo consumen.

Crear uno es tan fácil como ejecutar `npm init` o `npm init -y` para aceptar todas las opciones por defecto. Pero un package.json profesional requiere más configuración: engines, license, repository y scripts bien definidos.

Estructura profesional de package.json

Un package.json completo va más allá de lo básico.

Además de name y version, un package.json profesional incluye: description clara, keywords para discovery, author con información de contacto, license (MIT es común en código abierto), repository para código fuente, bugs para issues, engines para especificar versiones de Node, y un objeto scripts con tareas comunes.

No todos los campos son obligatorios, pero los que defines comunican profesionalismo y facilitan que otros contribuyan a tu proyecto.

  • name: identificador único (kebab-case)
  • version: sigue semver (major.minor.patch)
  • description: en una línea qué hace el proyecto
  • main: punto de entrada del paquete
  • scripts: comandos ejecutables con npm run
  • keywords: array de términos de búsqueda

Comandos esenciales que usarás cada día

Estos cinco comandos cubren el 90% del uso diario de npm.

`npm install` o su atajo `npm i` es el comando más usado: instala todas las dependencias listadas en package.json. `npm install <paquete>` instala un paquete nuevo y lo añade a dependencies. `npm install -D <paquete>` lo añade a devDependencies (solo para desarrollo).

`npm run` lista y ejecuta los scripts definidos en package.json. `npm update` actualiza paquetes a las últimas versiones permitidas por el semver. `npm uninstall <paquete>` elimina un paquete y su referencia.

NPM
01

Introducción a NPM: el gestor de paquetes que acompaña todo proyecto JavaScript

Descubre qué es NPM, por qué lo necesitas en cada proyecto y cómo se relaciona con el ecosistema JavaScript moderno. Aprende a distinguir npm de otros competidores y prepárate para el flujo de trabajo diario.

Código del tema: npm init

📘 Teoría

Qué es NPM y por qué importan los package managers

NPM es el gestor de paquetes por defecto del ecosistema JavaScript.

NPM (Node Package Manager) surge de la necesidad de compartir y reutilizar código entre desarrolladores. Antes de npm, integrar librerías significaba copiar archivos manualmente, actualizar dependencias era un caos y versionar código compartido era prácticamente imposible.

Un package manager resuelve tres problemas clave: instalación consistente (todosinstalan la misma versión), gestión de dependencias (incluye las dependencias de tus dependencias, llamadas transitive) y versionado semántico (controles qué nivel de cambios aceptas).

  • Instalar librerías de terceros sin copiar archivos
  • Gestionar versiones de forma predictible
  • Compartir tu propio código con la comunidad
  • Automatizar tareas del flujo de desarrollo

NPM vs yarn vs pnpm: por qué npm sigue siendo la opción por defecto

El ecosistema tiene alternativas, pero npm sigue siendo el estándar.

yarn, lanzado por Facebook en 2016, introdujo mejoras de velocidad y caché que npm no tenía. pnpm apareció después con un enfoque más eficiente de almacenamiento usando hard links. Sin embargo, npm ha evolucionado significativamente: npm 7+ incluye workspaces nativos y mejoras de rendimiento que reducen la brecha.

Para proyectos personales o equipos que se integran con herramientas externas, npm ofrece la máxima compatibilidad. yarn y pnpm tienen sus casos de uso específicos, pero dominar npm te permite trabajar en cualquier proyecto sin aprender gestores nuevos.

  • npm: estándar, mejor compatibilidad, evolución constante
  • yarn: velocidad y caché mejorados, lockfile estable
  • pnpm: eficiente en disco, estructura de node_modules diferente

El archivo package.json: el corazón de todo proyecto npm

Todo proyecto npm parte de un archivo package.json.

El package.json es un archivo JSON que metadata del proyecto: nombre, versión, descripción, punto de entrada, scripts y, lo más importante, la lista de dependencias. Funciona como un contrato entre tu proyecto y quienes lo consumen.

Crear uno es tan fácil como ejecutar `npm init` o `npm init -y` para aceptar todas las opciones por defecto. Pero un package.json profesional requiere más configuración: engines, license, repository y scripts bien definidos.

Inicializar un proyecto nuevo
# Versión interactiva (preguntará detalles)
npm init

# Versión rápida (valores por defecto)
npm init -y

Estructura profesional de package.json

Un package.json completo va más allá de lo básico.

Además de name y version, un package.json profesional incluye: description clara, keywords para discovery, author con información de contacto, license (MIT es común en código abierto), repository para código fuente, bugs para issues, engines para especificar versiones de Node, y un objeto scripts con tareas comunes.

No todos los campos son obligatorios, pero los que defines comunican profesionalismo y facilitan que otros contribuyan a tu proyecto.

  • name: identificador único (kebab-case)
  • version: sigue semver (major.minor.patch)
  • description: en una línea qué hace el proyecto
  • main: punto de entrada del paquete
  • scripts: comandos ejecutables con npm run
  • keywords: array de términos de búsqueda
  • license: permisos de uso (MIT, GPL, etc.)

Comandos esenciales que usarás cada día

Estos cinco comandos cubren el 90% del uso diario de npm.

`npm install` o su atajo `npm i` es el comando más usado: instala todas las dependencias listadas en package.json. `npm install ` instala un paquete nuevo y lo añade a dependencies. `npm install -D ` lo añade a devDependencies (solo para desarrollo).

`npm run` lista y ejecuta los scripts definidos en package.json. `npm update` actualiza paquetes a las últimas versiones permitidas por el semver. `npm uninstall ` elimina un paquete y su referencia.

Comandos fundamentales
# Instalar todas las dependencias
npm install

# Instalar un paquete nuevo (production)
npm install lodash

# Instalar como dependencia de desarrollonpm install -D jest

# Ejecutar un script definido en package.json
npm run build

# Actualizar paquetes a versiones permitidas
npm update

# Desinstalar un paquetenpm uninstall lodash

🧪 Aprende probando

Ejemplo Demo guiada: crear package.json desde cero Crea un package.json profesional paso a paso.
Ejemplo Ejemplo: instalar y usar una dependencia real Instala lodash y verifica que aparece en package.json.

🏁 Retos

Reto Reto 1: Configurar package.json completo Crea un package.json con todos los campos profesionales.
Reto Reto 2: Instalar una dependencia real Instala chalk (para colores en terminal) y verifica que se guarda en dependencies.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre NPM.

Test de NPM

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .