Busca en todas las páginas de la documentación
Cómo descargar e instalar Node.js y npm en macOS y Windows — incluyendo qué significa LTS, los diferentes métodos de instalación y cuál elegir.
Tarjeta de referencia rápida — lista para copiar y pegar.
# Verificar si Node.js ya está instalado
node --version
# Verificar versión de npm
npm --version
# Instalar Node.js con nvm (recomendado para macOS/Linux)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install --lts
nvm use --lts
# Verificar instalación
node --version # ej. v22.15.0
npm --version # ej. 10.9.2Cuándo usarlo: Antes de comenzar cualquier proyecto de React, Next.js o Node.js necesitas tener instalados Node.js y npm. Este es siempre el paso cero.
| Plataforma | Enlace | Notas |
|---|---|---|
| Descargas oficiales | https://nodejs.org/en/download | Instaladores para todas las plataformas |
| macOS / Linux (nvm) | https://github.com/nvm-sh/nvm | Gestor de versiones — recomendado |
| Windows (nvm-windows) | https://github.com/coreybutler/nvm-windows | Gestor de versiones específico para Windows |
| macOS (Homebrew) | brew install node | Versión única vía Homebrew |
| Windows (winget) | winget install OpenJS.NodeJS.LTS | Versión única vía winget |
| Windows (Chocolatey) | choco install nodejs-lts | Versión única vía Chocolatey |
| Volta | https://volta.sh | Gestor de versiones multiplataforma |
| fnm | https://github.com/Schniz/fnm | Gestor de versiones rápido basado en Rust |
Siempre descarga desde nodejs.org o desde un gestor de versiones de confianza. La página de descargas ofrece dos opciones: LTS y Current.
LTS significa Long Term Support (soporte a largo plazo). Node.js sigue un cronograma de lanzamientos donde las versiones principales con números pares (18, 20, 22, 24...) alcanzan el estado LTS y reciben correcciones de errores y parches de seguridad durante 30 meses. Las versiones con números impares (19, 21, 23...) son lanzamientos "Current" de corta duración que solo reciben soporte durante 6 meses.
| Opción | Ejemplo | Ventana de soporte | Ideal para |
|---|---|---|---|
| LTS | Node 22.x | 30 meses de parches | Aplicaciones en producción, equipos, estabilidad |
| Current | Node 23.x | ~6 meses | Probar características nuevas tempranamente |
Regla general: Siempre usa la versión LTS más reciente a menos que tengas una razón específica para usar Current. Todos los despliegues en producción, canalizaciones de CI y tutoriales en este cookbook asumen LTS.
npm (Node Package Manager) es el gestor de paquetes predeterminado que se incluye con cada instalación de Node.js. Realiza tres cosas:
package.json y package-lock.json.package.json (ej., npm run dev, npm test).Cuando instalas Node.js, obtienes npm de forma gratuita. No necesitas instalarlo por separado.
# Instalar un paquete
npm install react
# Instalar dependencias de desarrollo
npm install --save-dev typescript
# Ejecutar un script desde package.json
npm run dev
# Instalar todas las dependencias desde package.json
npm installnvm (Node Version Manager) te permite instalar y cambiar entre múltiples versiones de Node.js. Esta es la mejor opción para desarrolladores que trabajan en proyectos que pueden requerir diferentes versiones de Node.
# Instalar nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
# Reinicia tu terminal, luego:
nvm install --lts # Instalar LTS más reciente
nvm use --lts # Activarlo
nvm alias default lts/* # Hacerlo predeterminado para shells nuevos
# Cambiar entre versiones
nvm install 20 # Instalar Node 20
nvm instala Node.js en ~/.nvm/ así que no requiere sudo y evita problemas de permisos con paquetes globales.
brew install node # Instala la última versión current
brew install node@22 # Instala una versión LTS específicaSimple, pero solo gestiona una versión a la vez. Si necesitas cambiar entre versiones, usa nvm en su lugar.
brew install fnm
fnm install --lts
fnm use --lts
# Añadir al perfil de shell (~/.zshrc o ~/.bashrc)
eval "$(fnm env --use-on-cd)"fnm está escrito en Rust y es notablemente más rápido que nvm para cambiar de versión. También admite archivos .node-version y .nvmrc.
curl https://get.volta.sh | bash
volta install node@ltsVolta fija las versiones de herramientas por proyecto en package.json para que todos los colaboradores usen automáticamente la misma versión.
Descarga el archivo .pkg desde https://nodejs.org/en/download y ejecútalo. Instala Node.js y npm en todo el sistema en /usr/local/. Funciona, pero es más difícil gestionar múltiples versiones y puede requerir sudo para instalaciones globales.
nvm-windows es un proyecto separado de nvm (no un puerto) pero proporciona el mismo flujo de trabajo de cambio de versión.
.exenvm install lts # Instalar LTS más reciente
nvm use lts # Activarlo
nvm list # Listar versiones instaladaswinget install OpenJS.NodeJS.LTSIntegrado en Windows 11 y disponible para Windows 10. Instala una versión única en todo el sistema.
choco install nodejs-ltsRequiere que Chocolatey esté instalado primero. Similar a Homebrew en macOS — gestiona una versión a la vez.
winget install Schniz.fnm
fnm install --lts
fnm use --ltsFunciona en Windows, macOS y Linux. Cambio de versión rápido.
# Descargar instalador desde https://volta.sh
volta install node@ltsDescarga el archivo .msi desde https://nodejs.org/en/download y ejecútalo. Instala Node.js, npm, y opcionalmente añade a PATH. La opción más simple pero más difícil de gestionar múltiples versiones.
| Situación | Método recomendado |
|---|---|
| Múltiples proyectos, diferentes versiones de Node | nvm (macOS/Linux) o nvm-windows |
| Quieres el cambio de versión más rápido | fnm |
| El equipo necesita que todos usen la misma versión | Volta |
| Solo necesitas Node.js instalado rápidamente | Homebrew / winget / instalador oficial |
| Canalizaciones CI/CD | Instalador oficial o Docker node:22-alpine |
Después de instalar, abre una terminal nueva y ejecuta:
node --version
# v22.15.0 (o similar versión LTS)
npm --version
# 10.9.2 (o similar)
# Prueba rápida — ejecutar un one-liner
node -e "console.log('Node.js is working!')"# Con nvm
nvm install --lts --reinstall-packages-from=current
nvm use --lts
# Con Homebrew
brew upgrade node
# Con fnm
fnm install --lts
fnm use --lts
# Con Volta
volta install node@ltsCuando actualices Node.js, los paquetes npm instalados globalmente pueden necesitar reinstalación. El flag --reinstall-packages-from=current en nvm maneja esto automáticamente.
npm install -g falla con EACCES, cambia a nvm — instala en tu directorio home y evita problemas de permisos completamente. Nunca uses sudo npm install -g..nvmrc no cambia automáticamente. nvm no cambia automáticamente las versiones de Node cuando haces cd a un directorio con .nvmrc por defecto. Añade autoload a tu configuración de shell o usa fnm/Volta que lo hacen de forma predeterminada.npm instala y gestiona paquetes. npx ejecuta un binario de paquete sin instalarlo globalmente (ej., npx create-next-app). Ambos se incluyen con Node.js.node no se reconoce después de la instalación, verifica que el directorio de instalación se haya añadido a tu PATH del sistema. Reinicia tu terminal o cierra sesión e inicia sesión nuevamente.node --version muestra una versión diferente en VS Code, reinicia VS Code después de instalar o cambiar de versión.Siempre instala la versión LTS más reciente a menos que un proyecto especifique lo contrario. Las versiones LTS reciben parches de seguridad y correcciones de errores durante 30 meses, lo que las hace la opción segura para trabajo en producción y aprendizaje.
No. npm se incluye con Node.js. Cuando instalas Node.js, npm se incluye automáticamente. Puedes verificarlo con npm --version.
npm instala y gestiona paquetes. npx ejecuta un binario de paquete — ya sea desde tu node_modules/.bin local o descargándolo temporalmente. Por ejemplo, npx create-next-app ejecuta el generador create-next-app sin instalarlo globalmente.
Ambos funcionan bien. nvm es el más ampliamente usado y documentado. fnm es más rápido (escrito en Rust) y admite cambio automático en cd de forma predeterminada. Si la velocidad te importa, usa fnm. Si quieres el soporte comunitario más amplio, usa nvm.
Sí, si usas un gestor de versiones (nvm, fnm, Volta, nvm-windows). Instalan cada versión en su propio directorio y te permiten cambiar entre ellas con un solo comando. El instalador oficial solo gestiona una versión.
.nvmrc?Un archivo .nvmrc en la raíz de un proyecto contiene la versión de Node.js que ese proyecto espera (ej., 22). Cuando ejecutas nvm use en ese directorio, nvm lee el archivo y cambia a esa versión. fnm y Volta soportan archivos similares y pueden cambiar automáticamente cuando haces cd al directorio.
Con nvm: nvm uninstall 20. Con Homebrew: brew uninstall node. Con el instalador oficial en macOS, necesitas eliminar manualmente archivos desde /usr/local/. En Windows, usa Agregar o quitar programas.
npm install -g falla con errores de permisos?El instalador oficial de Node.js coloca archivos en directorios del sistema que requieren acceso de root. La solución es cambiar a nvm o fnm, que instalan en tu directorio home. Nunca uses sudo npm install -g — crea archivos propiedad de root que causan más problemas de permisos.
Bun y Deno son runtimes alternativos de JavaScript. Pueden ejecutar muchos scripts de Node.js pero tienen APIs y ecosistemas diferentes. Para desarrollo con React y Next.js, Node.js sigue siendo el runtime estándar. Puedes explorar Bun o Deno para casos de uso específicos, pero comienza con Node.js.
Verifica el campo engines en package.json (ej., "engines": { "node": ">=20" }), busca un archivo .nvmrc o .node-version, o consulta el README del proyecto. Si ninguno existe, usa la versión LTS más reciente.