consdata.com
Blog techniczny Blog biznesowy Dział HR
EN
nvm

Korzyści wynikające z użycia Node Version Manager

author Krzysztof Czechowski
9 maja 2019

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

https://github.com/nvm-sh/nvm/blob/master/README.md

Najnowsze wpisy

  • Dostępność w PDF - dokumenty bez barier
  • Czy wiesz, że z pomocą @starting-style można animować elementy z display: none za pomocą samego CSS?
  • Czy wiesz, że w Angular 17 została wprowadzona alternatywa dla *ngSwitch?
Dołącz do nas

  • 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

Zapisz się

Podobne wpisy

post-image
WCAG

Dostępność w PDF - dokumenty bez barier

author
Kacper Hoffman 28 kwi 2025
post-image
angular

Czy wiesz, że z pomocą @starting-style można animować elementy z display: none za pomocą samego CSS?

author
Piotr Tatarski 7 kwi 2025
post-image
angular

Czy wiesz, że w Angular 17 została wprowadzona alternatywa dla *ngSwitch?

author
Dorian Mejer 10 mar 2025
Dołącz do nas

  • 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

Zapisz się na

newsletter

techniczny

consdata.com
  • Kontakt

    • sales@consdata.com
    • +48 61 41 51 000

  • Biuro

    • K9Office
      Krysiewicza 9/14
      61-825 Poznań
      Polska

  • Rozwiązania

    • Eximee
    • Kouncil
  • Blog Dołącz do nas
Copyright © 2024 Consdata. All rights reserved. Privacy Policy & Cookies
Chcemy używać plików cookie oraz skryptów podmiotów trzecich do polepszania funkcjonowania tej strony Zgadzam się