Learn

Instalar una dependencia

add, install, save-dev, y la diferencia entre dependencias de producción y de desarrollo.

Requisitos previos

Añadir una biblioteca a tu proyecto es el primer comando que vas a repetir mil veces. Esta lección cubre la sintaxis para npm, pnpm y bun, y la distinción entre dependencias normales y de desarrollo.

El comando básico

Con pnpm (recomendado):

shell
pnpm add react

Con bun:

shell
bun add react

Con npm:

shell
npm install react

Los tres comandos hacen lo mismo: descargan el paquete, lo añaden a dependencies en package.json, y actualizan el lockfile.

Dependencias de desarrollo

Algunos paquetes solo son útiles durante el desarrollo: compiladores de TypeScript, linters, frameworks de test. No quieres que estén en producción. Usa el flag -D (o --save-dev):

shell
pnpm add -D typescript
shell
bun add -d vitest
shell
npm install --save-dev eslint

Estos paquetes van a devDependencies en package.json en lugar de dependencies.

Entender el versionado semver

Cuando instalas un paquete, package.json registra la versión con un prefijo:

json
{
  "dependencies": {
    "react": "^18.3.0",
    "lodash": "~4.17.21",
    "some-lib": "2.1.0"
  }
}
  • ^18.3.0 (caret): acepta cualquier versión 18.x.x mayor o igual a 18.3.0. Se permiten actualizaciones de minor y patch.
  • ~4.17.21 (tilde): acepta solo 4.17.x. Solo se permiten actualizaciones de patch.
  • 2.1.0 (exacta): esta versión precisa, nada más.

El caret ^ es el valor por defecto de pnpm, bun y npm. Es adecuado para la mayoría de los casos.

Instalar paquetes globales

Para una herramienta CLI que quieras tener disponible en todas partes (ej: vercel, http-server):

shell
pnpm add -g vercel
shell
npm install -g vercel

Prefiere pnpm dlx (o npx) para comandos puntuales en lugar de instalaciones globales:

shell
pnpm dlx create-next-app my-app

Reinstalar todas las dependencias

Cuando clonas un proyecto existente, no tienes node_modules/. Simplemente ejecuta:

shell
pnpm install

pnpm lee el lockfile e instala exactamente las mismas versiones que el autor del proyecto.

Versionado semántico de npm

Marca los pasos para desbloquear lo siguiente

Volver al curso