Sobre o projeto
`n` é um gerenciador de versões Node.js leve, baseado em BASH, projetado para simplicidade. Ele permite baixar, instalar e alternar entre múltiplas versões do Node.js de forma interativa ou via argumentos de linha de comando, sem exigir subshells, modificações de perfil ou APIs complexas.
## Plataformas Suportadas
`n` roda em macOS, Linux (incluindo Windows Subsystem for Linux) e outros sistemas Unix-like. Ele não funciona em shells nativos do Windows (ex.: PowerShell), Git para Windows BASH ou com a DLL do Cygwin.
## Instalação
Se o Node.js já estiver instalado, a maneira mais fácil de instalar o `n` é via npm:
```bash
npm install -g n
```
Por padrão, o `n` instala em `/usr/local`, o que pode exigir permissões apropriadas. As opções incluem alterar a propriedade do diretório, usar um local personalizado `N_PREFIX` ou executar com `sudo`.
Para inicialização sem npm, você pode baixar e executar o `n` diretamente:
```bash
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s install lts
```
Instaladores de terceiros estão disponíveis para macOS via Homebrew (`brew install n`) e MacPorts (`port install n`), e para Linux/macOS via `n-install`.
## Principais Recursos
- **Seleção interativa**: Execute `n` sozinho para ver as versões baixadas e selecione uma com as teclas de seta.
- **Especificação de versão**: Suporta números de versão completos ou parciais (ex.: `4.9.1`, `8`, `v6.1`), rótulos como `lts`, `latest`, `current` e codinomes (`argon`, `boron`, `carbon`).
- **Detecção automática de versão**: Lê `.n-node-version`, `.node-version`, `.nvmrc` ou o campo `engines` no `package.json`.
- **Gerenciamento de cache**: Os downloads são armazenados em cache para reinstalações offline; `n ls` lista versões em cache, `n rm` remove versões específicas, `n prune` limpa tudo exceto a ativa.
- **Execução direta**: `n run <versão> <script>` executa um script com uma versão específica do Node.js; `n exec <versão> <comando>` executa um comando com o `PATH` da versão; `n which <versão>` mostra o caminho do binário.
- **Preservando npm**: Use `--preserve` ou `N_PRESERVE_NPM`/`N_PRESERVE_COREPACK` para manter as versões atuais do npm/corepack.
- **Espelhos personalizados**: Defina `N_NODE_MIRROR` ou `N_NODE_DOWNLOAD_MIRROR` para fontes de download alternativas (ex.: espelho da China ou builds não oficiais).
- **Sobrescrever arquitetura**: Use `--arch` ou `N_ARCH` para selecionar binários específicos (ex.: `x64-musl` para Alpine).
- **Variáveis de ambiente**: `N_PREFIX` altera o local de instalação; `N_CACHE_PREFIX` altera o local do cache; `NO_COLOR`/`CLICOLOR=0` controlam cores ANSI.
- **Diagnóstico**: `n doctor` ajuda a solucionar problemas.
## Exemplos de Uso
```bash
n 10.16.0 # Instalar uma versão específica
n lts # Instalar a última LTS
n ls-remote lts # Listar versões remotas correspondentes
n ls # Listar versões em cache
n rm 0.9.4 # Remover uma versão em cache
n uninstall # Remover Node.js ativo (manter cache)
n run 8.11.3 --debug some.js
n exec 10 my-script --fast test
n --offline 12 # Usar versão em cache sem internet
```
## Como Funciona
`n` baixa tarballs do Node.js para uma pasta de cache (padrão: `N_PREFIX/n/versions`) e instala a versão ativa nos subdiretórios `bin`, `include`, `lib` e `share`. Ele não modifica pacotes npm globais, a menos que `--preserve` seja usado. A ferramenta é projetada para ser mínima e transparente, tornando-a uma escolha popular para desenvolvedores que preferem um gerenciador de versões direto.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.