Proste zarzadzanie NVM za pomocą pluginu Zsh
Do zarządzania NVM wykorzystuję plugin do Zsh zsh-nvm. Instaluje on dla mnie NVM i ułatwia jego aktualizację.
Założenia
- Linux
- Zsh ustawiony jako domyślna powłoka
Do łatwiejszego zarządzania wtyczkami dla Zsh wykorzystuję zplug.
Konfiguracja i instalacja
W pliku .zshrc
dodajemy:
# Sprawdzamy czy zplug jest zainstalowany
if [[ ! -d ~/.zplug ]]; then
git clone https://github.com/zplug/zplug ~/.zplug
source ~/.zplug/init.zsh && zplug update --force
else
source ~/.zplug/init.zsh
fi
# zplug sam może się aktualizować
zplug "zplug/zplug", hook-build:"zplug --self-manage"
export NVM_LAZY_LOAD=true
export NVM_AUTO_USE=true
zplug "lukechilds/zsh-nvm"
zplug "lukechilds/zsh-better-npm-completion", defer:3
# zplug check zwraca true jeśli wszystkie pluginy są zainstalowane
# Jeśli zwróci false, odpal zplug install
if ! zplug check; then
zplug install
fi
# Załaduj pluginy i dodaj komendy do $PATH
zplug load #--verbose
Teraz wystarczy otworzyć nowy terminal i zadzieje się trochę magii:
- zostanie zainstalowany
zplug
- następnie on zainstaluje
zsh-nvm
zsh-nvm
zainstaluje NVM-a
Sprawdzamy wersję za pomocą nvm --version
. Od tego momentu możemy
go aktualizować za pomocą nvm upgrade
. Jeśli aktualizacja coś popsuje,
cofamy się do poprzedniej wersji z wykorzystaniem nvm revert
.
Eksportuję tutaj również dwie zmienne środowiskowe:
export NVM_LAZY_LOAD=true
- ładuje NVM dopiero przy pierwszym użyciu zamiast przy każdym odpalaniu nowego terminala.export NVM_AUTO_USE=true
- automatycznie przełącza bądź instaluje odpowiednią wersję Node z pliku.nvmrc
. NVM musi być załadowany w danym terminalu (czyli używasz dowolnej komendynvm
alboexport NVM_LAZY_LOAD=false
)
Inne przydatne komendy
Aktualizacja do ostatnie stabilnej wersji Node:
nvm install lts/* --reinstall-packages-from=node
Ustawianie domyślnej stabilnej wersji Node:
nvm alias default lts/*
Jako bonus mamy również lepsze autouzupełnianie w terminalu do NPM dzięki zsh-better-npm-completion.