fnm
)Gerenciador de versões Node.js rápido e simples, integrado em Rust
? Suporte multiplataforma (macOS, Windows, Linux)
Arquivo único, instalação fácil, inicialização instantânea
Construído com velocidade em mente
Funciona com arquivos .node-version
e .nvmrc
Para bash
, zsh
e fish
shells, há um script de instalação automática.
Primeiro, certifique-se de que curl
e unzip
já estejam instalados em seu sistema operacional. Em seguida, execute:
curl -fsSL https://fnm.vercel.app/install | bash
No macOS, é tão simples quanto brew upgrade fnm
.
Em outros sistemas operacionais, atualizar fnm
é quase o mesmo que instalá-lo. Para evitar duplicação em seu arquivo de configuração do shell, adicione --skip-shell
para instalar o comando.
--install-dir
Defina um diretório personalizado para o fnm ser instalado. O padrão é $XDG_DATA_HOME/fnm
(se $XDG_DATA_HOME
não estiver definido, ele volta para $HOME/.local/share/fnm
no Linux e $HOME/Library/Application Support/fnm
no MacOS).
--skip-shell
Ignore a anexação do carregador específico do shell ao arquivo de configuração do shell, com base no shell do usuário atual, definido em $SHELL
. por exemplo, para Bash, $HOME/.bashrc
. $HOME/.zshrc
para Zsh. Para peixes - $HOME/.config/fish/conf.d/fnm.fish
--force-install
As instalações do macOS usando o script de instalação foram descontinuadas em favor da fórmula Homebrew, mas isso força o script a ser instalado usando-o de qualquer maneira.
Exemplo:
curl -fsSL https://fnm.vercel.app/install | bash -s -- --install-dir " ./.fnm " --skip-shell
brew install fnm
Em seguida, configure seu shell para fnm
winget install Schniz.fnm
scoop install fnm
Em seguida, configure seu shell para fnm
choco install fnm
Em seguida, configure seu shell para fnm
cargo install fnm
Em seguida, configure seu shell para fnm
PATH
Para remover fnm (?), basta excluir a pasta .fnm
em seu diretório inicial. Você também deve editar a configuração do seu shell para remover quaisquer referências ao fnm (ou seja, leia a configuração do Shell e faça o oposto).
fnm envia suas conclusões com o binário:
fnm completions --shell < SHELL >
Onde <SHELL>
pode ser um dos shells suportados:
bash
zsh
fish
powershell
Por favor, siga as instruções do shell para instalá-los.
As variáveis de ambiente precisam ser configuradas antes de você começar a usar o fnm. Isso é feito avaliando a saída de fnm env
.
Observação
Confira a seção Configuração para ativar recursos altamente recomendados, como troca automática de versão.
Adicionar uma .node-version
ao seu projeto é tão simples quanto:
$ node --version
v14.18.3
$ node --version > .node-version
Confira os seguintes guias para o shell que você usa:
Adicione o seguinte ao seu perfil .bashrc
:
eval " $( fnm env --use-on-cd --shell bash ) "
Adicione o seguinte ao seu perfil .zshrc
:
eval " $( fnm env --use-on-cd --shell zsh ) "
Crie ~/.config/fish/conf.d/fnm.fish
e adicione esta linha a ele:
fnm env --use-on-cd --shell fish | source
Adicione o seguinte ao final do seu arquivo de perfil:
fnm env -- use-on - cd -- shell powershell | Out-String | Invoke-Expression
~/.config/powershell/Microsoft.PowerShell_profile.ps1
notepad $profile
fnm também é suportado, mas não é totalmente coberto. Você pode configurar um script de inicialização para cmd.exe ou Terminal do Windows e anexar as seguintes linhas:
@ echo off
:: for /F will launch a new instance of cmd so we create a guard to prevent an infnite loop
if not defined FNM_AUTORUN_GUARD (
set " FNM_AUTORUN_GUARD = AutorunGuard "
FOR /f " tokens=* " %%z IN ('fnm env --use-on-cd') DO CALL %%z
)
O uso é muito semelhante à instalação normal do WinCMD, exceto por alguns ajustes para permitir a chamada a partir do script de inicialização do cmder. O exemplo pressupõe que a variável de ambiente CMDER_ROOT
esteja configurada para o diretório raiz da instalação do Cmder. Então você pode fazer algo assim:
:: %CMDER_ROOT%binfnm_init.cmd
@ echo off
FOR /f " tokens=* " %%z IN ('fnm env --use-on-cd') DO CALL %%z
:: %CMDER_ROOT%configuser_profile.cmd
call " %CMDER_ROOT% binfnm_init.cmd "
Você também pode substituir %CMDER_ROOT%
por qualquer outro caminho conveniente.
Consulte as opções de configuração disponíveis para obter uma documentação de configuração estendida
Veja os comandos disponíveis para uma documentação de uso estendida
PRs são bem-vindos?
# Install Rust
git clone https://github.com/Schniz/fnm.git
cd fnm/
cargo build
cargo run -- --help # Will behave like `fnm --help`
cargo test