94efefc7bf
10 funciones Bash del dominio infra: instaladores de herramientas de desarrollo (install_go, install_nodejs, install_pnpm, install_python312, install_uv, install_volta, install_wails), diagnostico del sistema (analyze_disk_space, detect_wsl, list_listening_ports). Automatizan la configuracion del entorno de desarrollo en Linux/WSL.
76 lines
2.3 KiB
Bash
76 lines
2.3 KiB
Bash
#!/usr/bin/env bash
|
|
# install_nodejs
|
|
# --------------
|
|
# Instala Node.js en Linux usando nvm (Node Version Manager).
|
|
# Instala nvm si no está presente, luego instala la versión de Node indicada
|
|
# y la configura como default.
|
|
#
|
|
# USO:
|
|
# source install_nodejs.sh
|
|
# install_nodejs [version]
|
|
#
|
|
# ARGUMENTOS:
|
|
# version Versión principal de Node.js (default: 20)
|
|
|
|
install_nodejs() {
|
|
local node_version="${1:-20}"
|
|
|
|
echo "Instalando Node.js v${node_version} mediante nvm..."
|
|
echo ""
|
|
|
|
# Informar si Node ya está instalado
|
|
if command -v node &>/dev/null; then
|
|
local current_version
|
|
current_version="$(node --version)"
|
|
echo "Node.js ya está instalado: ${current_version}"
|
|
echo "Continuando con la instalación/actualización..."
|
|
fi
|
|
|
|
# Instalar nvm si no está presente
|
|
if [[ -d "$HOME/.nvm" ]]; then
|
|
echo "nvm ya está instalado."
|
|
export NVM_DIR="$HOME/.nvm"
|
|
# shellcheck disable=SC1091
|
|
[[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
|
|
else
|
|
echo "Descargando e instalando nvm..."
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
|
|
|
export NVM_DIR="$HOME/.nvm"
|
|
# shellcheck disable=SC1091
|
|
[[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
|
|
echo "nvm instalado correctamente."
|
|
fi
|
|
|
|
# Verificar que nvm esté disponible
|
|
if ! command -v nvm &>/dev/null; then
|
|
echo "install_nodejs: nvm no está disponible después de la instalación" >&2
|
|
echo " Ejecuta: source ~/.bashrc (o abre una nueva terminal)" >&2
|
|
return 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "Instalando Node.js v${node_version}..."
|
|
nvm install "$node_version"
|
|
nvm use "$node_version"
|
|
nvm alias default "$node_version"
|
|
|
|
local installed_node
|
|
local installed_npm
|
|
installed_node="$(node --version)"
|
|
installed_npm="$(npm --version)"
|
|
|
|
echo ""
|
|
echo "Node.js instalado correctamente:"
|
|
echo " Node.js: ${installed_node}"
|
|
echo " npm: ${installed_npm}"
|
|
echo ""
|
|
echo "Si es una instalación nueva, reinicia tu terminal o ejecuta:"
|
|
echo " source ~/.bashrc # o ~/.zshrc según tu shell"
|
|
}
|
|
|
|
# Ejecutar si se invoca directamente
|
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
|
install_nodejs "$@"
|
|
fi
|