Saltar al contenido principal

Gestión de Paquetes

Cada lenguaje tiene su propio ecosistema para gestionar dependencias. Así es como los diferentes lenguajes manejan la gestión de paquetes, la resolución de dependencias y la configuración de proyectos.

Instalación y Gestión de Dependencias​

# npm (Node Package Manager)
npm init -y # Create package.json
npm install express # Install dependency
npm install -D jest # Install dev dependency
npm install # Install all from package.json
npm update # Update packages
npm uninstall express # Remove package

# yarn (alternative)
yarn init -y
yarn add express
yarn add -D jest
yarn install
yarn remove express

# pnpm (fast alternative)
pnpm install express
pnpm add -D jest

# Config file: package.json
# Lock file: package-lock.json / yarn.lock / pnpm-lock.yaml
# Registry: npmjs.com

Puntos Clave​

  • Registros centralizados vs descentralizados -- npm, PyPI, Crates.io, NuGet y Maven Central son centralizados; Go usa proxies de módulos (por defecto proxy.golang.org); Zig usa descargas basadas en URL sin registro central.
  • Los archivos de bloqueo aseguran reproducibilidad -- La mayoría de los ecosistemas usan archivos de bloqueo (package-lock.json, Cargo.lock, go.sum, Gemfile.lock, poetry.lock); C/C++ a menudo dependen de vendoring o paquetes del sistema con menos garantías.
  • La madurez de las herramientas varía -- JavaScript tiene npm/yarn/pnpm; Python tiene pip más Poetry/uv; Cargo de Rust está altamente integrado; C y C++ usan vcpkg, Conan o CMake FetchContent con más configuración manual.
  • Los entornos virtuales aíslan dependencias -- El venv de Python y Bundler de Ruby proporcionan aislamiento local por proyecto; node_modules de Node y la caché de módulos de Go cumplen objetivos similares.
  • C no tiene un gestor de paquetes estándar -- Los desarrolladores típicamente usan gestores de paquetes del sistema (apt, brew), vcpkg o compilación manual; la gestión de dependencias es en gran parte manual.