15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
18.10.2024

Cómo Instalar Node.js: Una Guía Técnica Completa para Todas las Plataformas

Node.js es un entorno de ejecución de JavaScript de código abierto y multiplataforma construido sobre el motor V8 de Chrome que ejecuta código JavaScript fuera del entorno del navegador. Su modelo de I/O no bloqueante y basado en eventos lo convierte en la opción dominante para construir APIs de alto rendimiento, aplicaciones en tiempo real, microservicios y herramientas del lado del servidor. Instalar Node.js correctamente — usando el método adecuado para tu sistema operativo y flujo de trabajo — es la base de un entorno de desarrollo estable y reproducible.

Esta guía cubre todos los métodos de instalación principales: instaladores oficiales, gestores de paquetes nativos del sistema operativo, las distribuciones binarias de NodeSource y nvm (Node Version Manager). También aborda la gestión de versiones, la higiene de paquetes globales y las consideraciones para servidores de producción que la mayoría de los tutoriales omiten por completo.

Elegir el Método de Instalación Correcto

Antes de ejecutar un solo comando, comprende qué te ofrece realmente cada método — porque una elección incorrecta crea problemas operativos reales más adelante.

MétodoIdeal ParaFlexibilidad de VersiónRequiere RootNotas
Instalador oficial `.pkg` / `.msi`Configuración local rápida, principiantesSolo una versiónContamina el PATH del sistema; difícil cambiar de versión
Gestor de paquetes del SO (`apt`, `brew`, `yum`)Instalaciones en todo el sistema, servidores CILimitadaFrecuentemente incluye versiones desactualizadas
Repositorio binario de NodeSourceServidores Linux, fijación predecible de LTSPor instalaciónMantenido por NodeSource; bueno para producción
`nvm` (Node Version Manager)Desarrollo con múltiples proyectosCompleta, por shellNoEstándar de oro para estaciones de trabajo de desarrolladores
`fnm` (Fast Node Manager)Pipelines CI sensibles al rendimientoCompletaNoBasado en Rust, significativamente más rápido que nvm
Docker / imagen de contenedorCompilaciones aisladas y reproduciblesCompleta, por contenedorDependeIdeal para microservicios y CI/CD

Regla de decisión clave: En una estación de trabajo de desarrollador, usa siempre nvm o fnm. En un servidor Linux de producción, usa el repositorio de NodeSource o una imagen de contenedor. Nunca uses el paquete Node.js del gestor de paquetes predeterminado del SO en Ubuntu/Debian — habitualmente incluye versiones que están años por detrás del LTS actual.

Instalación de Node.js en Linux

Linux es donde realmente se ejecuta la mayoría de las cargas de trabajo de producción de Node.js. Hacerlo correctamente importa más aquí que en cualquier otro lugar. Si estás desplegando en un entorno de VPS Hosting, los siguientes métodos se aplican directamente a tu servidor remoto.

Método 1: Distribuciones Binarias de NodeSource (Recomendado para Servidores)

NodeSource mantiene paquetes .deb y .rpm actualizados y firmados que siguen con precisión las líneas de versión LTS y Current de Node.js. Este es el enfoque más fiable para servidores Linux de producción.

Ubuntu / Debian:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Fedora / CentOS / RHEL / Rocky Linux:

curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
sudo yum install -y nodejs

Tras la instalación, verifica tanto el entorno de ejecución como el gestor de paquetes incluido:

node -v
npm -v

Problema crítico: El patrón curl | bash ejecuta un script remoto como root. En entornos con requisitos de seguridad estrictos, descarga primero el script, inspecciónalo y luego ejecútalo:

curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
less nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt-get install -y nodejs

Método 2: nvm — Node Version Manager (Recomendado para Desarrolladores)

nvm instala Node.js completamente en tu directorio home (~/.nvm), no requiere sudo y te permite cambiar de versión por proyecto o por sesión de shell. Esta es la herramienta correcta para cualquier estación de trabajo o servidor multiusuario donde diferentes aplicaciones requieren diferentes versiones de Node.js.

Instalar nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

El instalador añade la inicialización de shell necesaria a ~/.bashrc, ~/.zshrc o ~/.profile. Recarga tu shell:

source ~/.bashrc

Instalar la última versión LTS:

nvm install --lts

Instalar una versión específica por número:

nvm install 20.14.0

Cambiar entre versiones instaladas:

nvm use 18
nvm use 20

Establecer un valor predeterminado persistente para nuevas sesiones de shell:

nvm alias default 20

Listar todas las versiones instaladas localmente:

nvm ls

Verificar la versión activa:

node -v
npm -v

Caso especial — archivos .nvmrc: Coloca un archivo .nvmrc en la raíz de tu proyecto que contenga solo la cadena de versión (p. ej., 20.14.0). Al ejecutar nvm use dentro de ese directorio se selecciona automáticamente la versión correcta. Esto es esencial para entornos de equipo donde la deriva de versiones provoca errores sutiles.

echo "20.14.0" > .nvmrc
nvm use

Método 3: Gestor de Paquetes del Sistema (Aceptable para Herramientas, No para Producción)

Los repositorios predeterminados de apt o dnf incluyen versiones de Node.js que frecuentemente están desactualizadas. Úsalos solo para herramientas no críticas:

sudo apt-get update
sudo apt-get install -y nodejs npm

En Fedora / RHEL 9+:

sudo dnf install nodejs

Instalación de Node.js en macOS

Método 1: Homebrew (Recomendado)

Homebrew es el gestor de paquetes de facto para entornos de desarrollo en macOS. Si Homebrew aún no está instalado, sigue las instrucciones en brew.sh.

brew install node

Para instalar una versión principal específica (p. ej., Node.js 20 LTS):

brew install node@20
brew link --overwrite node@20

Verificar:

node -v
npm -v

Problema con Homebrew: brew upgrade node actualizará a la última versión, lo que puede romper proyectos fijados a una versión anterior. Si gestionas múltiples proyectos, usa también nvm en macOS — el flujo de trabajo es idéntico al de Linux.

Método 2: nvm en macOS

Los comandos de instalación y uso de nvm son idénticos a los de Linux. Los usuarios de macOS con Zsh (el predeterminado desde Catalina) deben confirmar que ~/.zshrc contiene el bloque de inicialización de nvm tras la instalación:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"

Método 3: Instalador Oficial .pkg

Descarga el instalador .pkg desde nodejs.org, ejecútalo y sigue el asistente. Esta es la ruta más sencilla para usuarios que necesitan una única versión de Node.js y no tienen planes de cambiar. Tras la instalación, abre Terminal y confirma:

node -v
npm -v

Instalación de Node.js en Windows

Método 1: Instalador Oficial .msi

Descarga el instalador de Windows (.msi) desde nodejs.org. Selecciona la versión LTS para trabajo orientado a producción o Current para experimentar con las últimas funcionalidades. El instalador registra Node.js en el PATH del sistema automáticamente.

Tras la instalación, abre el Símbolo del sistema o PowerShell y verifica:

node -v
npm -v

Importante: Durante el asistente del instalador, hay un paso opcional para instalar Chocolatey y las herramientas de compilación para módulos nativos (complementos C++). Actívalo si las dependencias de tu proyecto incluyen paquetes como bcrypt, sharp o módulos dependientes de node-gyp. Omitirlo provoca fallos de compilación crípticos más adelante.

Método 2: Chocolatey

Chocolatey es un gestor de paquetes para Windows que permite instalaciones programadas y repetibles — valioso para el aprovisionamiento de máquinas de desarrolladores.

Abre un Símbolo del sistema o PowerShell elevado (Administrador):

choco install nodejs-lts

Verificar:

node -v
npm -v

Método 3: nvm-windows

Ten en cuenta que nvm para Linux/macOS no funciona en Windows. El equivalente para Windows es nvm-windows, un proyecto independiente con una interfaz similar.

Descarga el instalador desde la página de versiones de GitHub de nvm-windows. Tras la instalación:

nvm install lts
nvm use lts
node -v

Subsistema de Windows para Linux (WSL2): Los desarrolladores que realizan trabajo serio con Node.js en Windows deberían considerar seriamente WSL2 con Ubuntu. Dentro de WSL2, la instalación de nvm para Linux funciona de manera idéntica a Linux nativo, y la experiencia de desarrollo es significativamente más coherente con los entornos de servidores de producción.

Entender LTS vs. Current: Qué Versión Instalar

Node.js sigue un calendario de versiones predecible que afecta directamente a qué versión deberías desplegar.

Tipo de VersiónCadenciaDuración del SoporteCaso de Uso
**LTS (Long Term Support)**Versiones principales pares (18, 20, 22)30 meses en total (12 Activo + 18 Mantenimiento)Aplicaciones de producción, cargas de trabajo empresariales
**Current**Versiones principales impares (19, 21, 23)Solo 6 mesesPruebas de funcionalidades, autores de bibliotecas
**Maintenance LTS**Versiones LTS en proceso de envejecimientoSolo correcciones de seguridadSistemas heredados en proceso de migración

Regla general: Despliega siempre LTS en producción. Usa Current solo en entornos de desarrollo aislados cuando necesites probar la compatibilidad con las próximas funcionalidades de Node.js.

Mantener Node.js Actualizado

Las versiones desactualizadas de Node.js exponen tu aplicación a vulnerabilidades conocidas del motor V8, configuraciones TLS obsoletas y compatibilidad rota con dependencias. Trata las actualizaciones de Node.js como mantenimiento de seguridad, no como mejoras opcionales.

Con nvm (todas las plataformas):

nvm install --lts
nvm reinstall-packages <old-version>
nvm alias default node

El comando nvm reinstall-packages migra los paquetes instalados globalmente de la versión antigua a la nueva — un detalle que la mayoría de las guías omiten y que ahorra mucho tiempo.

Con NodeSource en Debian/Ubuntu:

sudo apt-get update && sudo apt-get upgrade nodejs

Con Homebrew en macOS:

brew update && brew upgrade node

Con Chocolatey en Windows:

choco upgrade nodejs-lts

Gestión de Paquetes npm Globales

Los paquetes npm globales instalan herramientas CLI accesibles en todo el sistema. Mantén la lista de instalaciones globales al mínimo — las herramientas específicas del proyecto pertenecen a devDependencies, no a las instalaciones globales, para garantizar compilaciones reproducibles en todos los entornos.

Instalar un paquete global:

npm install -g yarn
npm install -g pm2
npm install -g typescript

Listar todos los paquetes instalados globalmente:

npm list -g --depth=0

Eliminar un paquete global:

npm uninstall -g yarn

Paquetes globales relevantes para producción:

    pm2 — Gestor de procesos para aplicaciones Node.js; gestiona clustering, reinicio automático y gestión de registros en servidores Linux
    typescript — Compilador de TypeScript (tsc)
    nodemon — Observador de archivos de desarrollo que reinicia automáticamente el proceso Node.js ante cambios en el código
    dotenv-cli — Carga archivos .env para configuración específica del entorno
    
    nvm y paquetes globales: Cuando cambias de versión de Node.js con nvm, los paquetes globales instalados bajo la versión anterior no están disponibles automáticamente. Reinstálalos o usa nvm reinstall-packages <previous-version> para migrarlos.
    Post-Instalación: Configuración de npm para Entornos de Producción
    Una instalación limpia de Node.js requiere algunos pasos de configuración adicionales antes de estar lista para producción.
    Establecer el registro npm (opcional, para registros privados o mirrors):
    npm config set registry https://registry.npmjs.org/
    Configurar el directorio de caché de npm (relevante en servidores con espacio /tmp limitado):
    npm config set cache /path/to/custom/cache
    Deshabilitar la generación de package-lock.json (solo si tu equipo usa yarn.lock exclusivamente):
    npm config set package-lock false
    Establecer la variable de entorno de Node.js para producción:
    export NODE_ENV=production
    Añade esto a /etc/environment o al archivo de unidad systemd de tu aplicación en servidores Linux para garantizar que Express.js, Next.js y otros frameworks activen sus optimizaciones de producción.
    Si estás ejecutando aplicaciones Node.js en un Servidor Dedicado, configura pm2 como un servicio systemd para garantizar que tu aplicación se reinicie tras los reinicios del sistema:
    pm2 start app.js --name "my-app"
    pm2 startup systemd
    pm2 save
    Ejecutar Node.js Detrás de un Proxy Inverso
    En servidores de producción, las aplicaciones Node.js nunca deben estar expuestas directamente en el puerto 80 o 443. Usa Nginx o Apache como proxy inverso y termina TLS en la capa del proxy. Esta es una decisión arquitectónica crítica que el paso de instalación habilita directamente.
    Una configuración mínima de Nginx para una aplicación Node.js que se ejecuta en el puerto 3000:
    server {
        listen 80;
        server_name yourdomain.com;
    
        location / {
            proxy_pass http://127.0.0.1:3000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
    Combina esto con un certificado TLS válido. Los Certificados SSL son esenciales para cualquier aplicación Node.js que maneje datos de usuarios, tokens de autenticación o solicitudes API — no son opcionales. Let’s Encrypt a través de certbot es la opción gratuita estándar; los certificados comerciales son apropiados para despliegues empresariales.
    Node.js en Hosting Compartido vs. VPS
    Una pregunta que surge con frecuencia: ¿puede Node.js ejecutarse en hosting compartido?
    Los entornos de Hosting Web Compartido estándar no admiten Node.js de ninguna manera significativa. El hosting compartido está diseñado para aplicaciones PHP y no proporciona acceso a shell, gestión de procesos persistentes ni la capacidad de vincularse a puertos personalizados — todo lo cual requiere Node.js.
    Para cualquier despliegue real de Node.js, necesitas como mínimo un plan de VPS Hosting. Un VPS te proporciona acceso root, un gestor de procesos persistente como pm2 y control total sobre la versión de Node.js y la configuración del entorno de ejecución. Si necesitas un panel de control gestionado junto con tu entorno Node.js, un VPS con cPanel proporciona un punto intermedio entre el acceso VPS puro y el hosting gestionado.
    Para cargas de trabajo de Node.js con uso intensivo de cómputo — inferencia de aprendizaje automático, transcodificación de vídeo o procesamiento de datos a gran escala — un VPS estándar puede no ser suficiente. El GPU Hosting proporciona la aceleración de hardware que los procesos Node.js limitados por CPU no pueden lograr por sí solos.
    Lista de Verificación de Puntos Clave Técnicos
    Úsala como lista de verificación previa al despliegue:
    
    Selección de versión: Confirma que estás ejecutando una versión LTS activa (node -v debe devolver un número principal par dentro del período de soporte activo)
    El método de instalación coincide con el entorno: nvm en máquinas de desarrolladores; NodeSource o contenedor en servidores
    La versión de npm es actual: Ejecuta npm install -g npm@latest después de instalar Node.js — el npm incluido frecuentemente no es el más reciente
    NODE_ENV está configurado: Verifica que echo $NODE_ENV devuelve production en todos los entornos de servidor
    El gestor de procesos está configurado: pm2 list muestra tu aplicación en ejecución y se ha ejecutado pm2 startup
  • El proxy inverso está en su lugar: Node.js no está expuesto directamente en el puerto 80/443
  • TLS se termina en el proxy: El certificado válido está instalado y las redirecciones HTTPS están aplicadas
  • La lista de paquetes globales es mínima: npm list -g --depth=0 muestra solo las herramientas CLI esenciales
  • .nvmrc está confirmado en el repositorio: Garantiza que todos los miembros del equipo y los pipelines CI usen la misma versión de Node.js
  • Las actualizaciones de seguridad están automatizadas: Un cron job o pipeline CI comprueba mensualmente si hay nuevos parches LTS
  • Preguntas Frecuentes

    ¿Cuál es la diferencia entre Node.js LTS y Current, y cuál debería instalar?

    Las versiones LTS (Long Term Support) son versiones principales pares (18, 20, 22) con soporte durante 30 meses con parches de seguridad y estabilidad. Las versiones Current son versiones principales impares con soporte de solo 6 meses. Instala LTS para cualquier trabajo de producción o desarrollo en equipo. Usa Current solo para experimentación de funcionalidades a corto plazo.

    ¿Por qué nvm muestra “comando no encontrado” tras la instalación?

    El instalador de nvm añade código de inicialización al archivo RC de tu shell (~/.bashrc o ~/.zshrc), pero la sesión de terminal actual no lo ha recargado. Ejecuta source ~/.bashrc (o source ~/.zshrc para Zsh), o abre una nueva ventana de terminal. Si el problema persiste, verifica manualmente que el bloque de inicialización de nvm existe al final de tu archivo RC.

    ¿Puedo ejecutar múltiples versiones de Node.js simultáneamente en el mismo servidor?

    Sí, con nvm. Cada versión se instala en su propio directorio bajo ~/.nvm/versions/. Puedes cambiar la versión activa por sesión de shell con nvm use <version>, o por proyecto usando un archivo .nvmrc. Diferentes procesos que ejecutan diferentes versiones de Node.js pueden coexistir sin conflictos.

    ¿Por qué no debería instalar Node.js desde el repositorio apt predeterminado de Ubuntu/Debian?

    Los repositorios predeterminados de Ubuntu y Debian incluyen versiones de Node.js que frecuentemente están dos o cuatro versiones principales por detrás del LTS actual. Por ejemplo, Ubuntu 22.04 incluye Node.js 12 por defecto — una versión que llegó al fin de su vida útil en 2022. Usa siempre el repositorio de NodeSource o nvm para obtener una versión actual con soporte.

    ¿Cómo desinstalo Node.js completamente y empiezo desde cero?

    El método depende de cómo se instaló. Para instalaciones de NodeSource: sudo apt-get remove nodejs && sudo apt-get autoremove. Para nvm: nvm uninstall <version> para versiones específicas, o elimina el directorio ~/.nvm completamente y elimina las líneas de inicialización de tu archivo RC. Para Homebrew: brew uninstall node. Para el instalador oficial en macOS/Windows, usa el desinstalador de aplicaciones estándar del sistema y elimina manualmente cualquier directorio residual bajo /usr/local/lib/node_modules o %AppData%npm.

    15%

    Ahorra 15%<\/span> en todos los servicios de hosting

    Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

    Usa el código:

    Skills
    Comenzar