Korzyści wynikające z użycia Node Version Manager
JavaScript i cały ekosystem z nim związany jest bardzo rozbudowany i wydaje się, że wcale nie zamierza przestać się rozrastać. Można czasem usłyszeć, że tydzień, w którym nie powstał nowy framework do JSa jest tygodniem straconym. Masa bibliotek w różnych wersjach, kolejne języki rozbudowujące możliwości JavaScriptu zmieniające to, jak go postrzegamy np.: TypeScript czy CoffeeScript, do tego jeszcze Node.js oraz różne silniki w przeglądarkach. W rezultacie mamy całkiem sporą listę i coraz więcej pracy związanej z zarządzaniem tym wszystkim.
Dlatego tym bardziej warto zainteresować się rozwiązaniami, które mają na celu ułatwić nam życie. Jednym z nich jest nvm, czyli Node Version Manager, który ma nam pomóc zarządzać wersjami Node.js. Cel jest prosty - umożliwić nam szybkie i łatwe przeskakiwanie między wersjami Node niewymagające uprawnień administratora.
Zalety
+ instalacja nie wymaga uprawnień roota,
+ dostęp do wielu wersji Node,
+ szybkie i wygodne zmiany wersji noda,
+ możliwość wykorzystania różnych wersji Node dla różnych projektów.
Wady
- nvm manipuluje .bashrc,
- lag na starcie bash.
Podstawowe polecenia nvm
-
wylistowanie wszystkich dostępnych wersji
nvm ls-remote
Zwróci nam wynik w postaci listy dostępnych wersji z zaznaczoną obecnie używaną.
v0.1.14 ... v10.15.0 -> v10.15.1 v10.15.2 ... v12.2.0
-
instalacja najnowszej wersji Node
nvm install Node
w rezultacie otrzymamy informacje jak poniżej
$ nvm install node Downloading and installing node v12.2.0... Downloading https://nodejs.org/dist/v12.2.0/node-v12.2.0-linux-x64.tar.xz... ######################################################################### 100,0% Computing checksum with sha256sum Checksums matched! Now using node v12.2.0 (npm v6.9.0)
-
instalacja najnowszej wersji oznaczonej jako Long-term support
nvm install --lts
poniżej rezultat
$ nvm install --lts Installing latest LTS version. Downloading and installing node v10.15.3... Downloading https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz... ######################################################################### 100,0% Computing checksum with sha256sum Checksums matched! Now using node v10.15.3 (npm v6.4.1)
-
instalacja konkretnej wersji Node (po instalacji aktualnie używaną wersją jest ta ostatnio zainstalowana)
nvm install {VERSION}
tu rezultat wygląda bardzo podobnie
$ nvm install 8.6.0 Downloading and installing node v8.6.0... Downloading https://nodejs.org/dist/v8.6.0/node-v8.6.0-linux-x64.tar.xz... ######################################################################### 100,0% Computing checksum with sha256sum Checksums matched! Now using node v8.6.0 (npm v5.3.0)
-
przestawienie domyślnej wersji Node
$ nvm alias default 10.15.1 default -> 10.15.1 (-> v10.15.1)
-
wylistowanie wszystkich zainstalowanych wersji
nvm ls
zwraca nam listę aktualnie zainstalowanych wersji
v10.15.0 -> v10.15.1 v10.15.2
-
użycie konkretnej wersji
nvm use Node {VERSION}
nvm potwierdzi nam zmianę wersji
$ nvm use 12.2.0 Now using node v12.2.0 (npm v6.9.0)
-
uruchomienie aplikacji w wybranej wersji Node
nvm run {VERSION} index.js
tu również nie będziemy mieć wątpliwości z jaką wersją uruchomiliśmy aplikację
$ nvm run 8.6.0 index.js Running node v8.6.0 (npm v5.3.0)
-
usunięcie wybranej wersji Node
nvm uninstall {VERSION}
potwierdzenie usunięcia
$ nvm uninstall 8.6.0 Uninstalled node v8.6.0
Ponadto .nvmrc.
Warto pamiętać, że w ramach projektu możemy łatwo ustalić jak wersja Node ma być wykorzystywana, a nvm zajmie się resztą. Do projektu wystarczy dodać plik .nvmrc.
9.0.1
i wykonać polecenie
nvm use
Uwaga na koniec
Nvm zwiększa objętość pliku .bashrc co spowalnia działanie terminala, trzeba się zastanowić czy na środowisku produkcyjnym jest to koszt, który chcemy ponosić.
Link do projektu
-
SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
B2B 19 680 - 27 220 PLN netto -
REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
B2B 14 950 - 21 000 PLN netto -
ZOBACZ WSZYSTKIE OGŁOSZENIA
newsletter
techniczny
Podobne wpisy
Czy wiesz, że w Angular 17 została wprowadzona alternatywa dla *ngFor?
-
SENIOR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 14 900 - 20 590 PLN brutto
B2B 19 680 - 27 220 PLN netto -
REGULAR FULLSTACK DEVELOPER (JAVA + ANGULAR) Poznań (hybrydowo) lub zdalnie UoP 11 300 - 15 900 PLN brutto
B2B 14 950 - 21 000 PLN netto -
ZOBACZ WSZYSTKIE OGŁOSZENIA