#!/usr/bin/env bash # install_pnpm # ------------ # Instala pnpm globalmente usando npm. # Verifica que npm esté disponible antes de instalar. # Idempotente: informa si pnpm ya está instalado. # # USO: # source install_pnpm.sh # install_pnpm install_pnpm() { echo "Instalando pnpm..." echo "" # Verificar si pnpm ya está instalado if command -v pnpm &>/dev/null; then local current_version current_version="$(pnpm --version 2>/dev/null || echo "desconocida")" echo "pnpm ya está instalado (versión: ${current_version})." return 0 fi # Verificar que npm esté disponible if ! command -v npm &>/dev/null; then echo "install_pnpm: npm no está instalado (requerido para instalar pnpm)" >&2 echo " Instala Node.js primero con install_nodejs" >&2 return 1 fi local npm_version npm_version="$(npm --version 2>/dev/null || echo "?")" echo "npm detectado: ${npm_version}" echo "" echo "Instalando pnpm globalmente (npm install -g pnpm)..." if ! npm install -g pnpm; then echo "install_pnpm: falló la instalación de pnpm" >&2 echo " Intenta con sudo: sudo npm install -g pnpm" >&2 return 1 fi # Verificar instalación if ! command -v pnpm &>/dev/null; then echo "install_pnpm: pnpm no está disponible después de la instalación" >&2 echo " Verifica que npm/bin esté en tu PATH" >&2 return 1 fi local installed_version installed_version="$(pnpm --version)" echo "" echo "pnpm instalado correctamente: ${installed_version}" echo "" echo "Comandos útiles:" echo " pnpm install - Instalar dependencias" echo " pnpm add - Agregar paquete" echo " pnpm run - Ejecutar script" } # Ejecutar si se invoca directamente if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then install_pnpm "$@" fi