Sobre el proyecto

`n` es un gestor de versiones de Node.js ligero, basado en BASH, diseñado para la simplicidad. Permite a los usuarios descargar, instalar y cambiar entre múltiples versiones de Node.js de forma interactiva o mediante argumentos de línea de comandos, sin requerir subshells, modificaciones de perfil ni APIs complejas. ## Plataformas compatibles `n` funciona en macOS, Linux (incluido el Subsistema de Windows para Linux) y otros sistemas tipo Unix. No funciona en shells nativos de Windows (por ejemplo, PowerShell), Git para Windows BASH ni con la DLL de Cygwin. ## Instalación Si Node.js ya está instalado, la forma más fácil de instalar `n` es mediante npm: ```bash npm install -g n ``` Por defecto, `n` se instala en `/usr/local`, lo que puede requerir permisos adecuados. Las opciones incluyen cambiar la propiedad del directorio, usar una ubicación personalizada `N_PREFIX` o ejecutar con `sudo`. Para el arranque sin npm, puedes descargar y ejecutar `n` directamente: ```bash curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s install lts ``` Hay instaladores de terceros disponibles para macOS mediante Homebrew (`brew install n`) y MacPorts (`port install n`), y para Linux/macOS mediante `n-install`. ## Características clave - **Selección interactiva**: Ejecuta `n` solo para ver las versiones descargadas y seleccionar una con las teclas de flecha. - **Especificación de versión**: Admite números de versión completos o parciales (por ejemplo, `4.9.1`, `8`, `v6.1`), etiquetas como `lts`, `latest`, `current` y nombres en clave (`argon`, `boron`, `carbon`). - **Detección automática de versión**: Lee `.n-node-version`, `.node-version`, `.nvmrc` o el campo `engines` en `package.json`. - **Gestión de caché**: Las descargas se almacenan en caché para reinstalaciones sin conexión; `n ls` lista las versiones en caché, `n rm` elimina versiones específicas, `n prune` limpia todo excepto la activa. - **Ejecución directa**: `n run <versión> <script>` ejecuta un script con una versión específica de Node.js; `n exec <versión> <comando>` ejecuta un comando con el `PATH` de esa versión; `n which <versión>` muestra la ruta del binario. - **Preservar npm**: Usa `--preserve` o `N_PRESERVE_NPM`/`N_PRESERVE_COREPACK` para mantener las versiones actuales de npm/corepack. - **Espejos personalizados**: Configura `N_NODE_MIRROR` o `N_NODE_DOWNLOAD_MIRROR` para fuentes de descarga alternativas (por ejemplo, espejo de China o compilaciones no oficiales). - **Anulación de arquitectura**: Usa `--arch` o `N_ARCH` para seleccionar binarios específicos (por ejemplo, `x64-musl` para Alpine). - **Variables de entorno**: `N_PREFIX` cambia la ubicación de instalación; `N_CACHE_PREFIX` cambia la ubicación de caché; `NO_COLOR`/`CLICOLOR=0` controlan los colores ANSI. - **Diagnóstico**: `n doctor` ayuda a solucionar problemas. ## Ejemplos de uso ```bash n 10.16.0 # Instalar una versión específica n lts # Instalar la última LTS n ls-remote lts # Listar versiones remotas coincidentes n ls # Listar versiones en caché n rm 0.9.4 # Eliminar una versión en caché n uninstall # Eliminar Node.js activo (conservar caché) n run 8.11.3 --debug some.js n exec 10 my-script --fast test n --offline 12 # Usar versión en caché sin internet ``` ## Cómo funciona `n` descarga los tarballs de Node.js en una carpeta de caché (por defecto: `N_PREFIX/n/versions`) e instala la versión activa en los subdirectorios `bin`, `include`, `lib` y `share`. No modifica los paquetes npm globales a menos que se use `--preserve`. La herramienta está diseñada para ser mínima y transparente, lo que la convierte en una opción popular para desarrolladores que prefieren un gestor de versiones sencillo.