Różnica między NPM i NVM


83

Wiem, że npm to menedżer pakietów, a nvm to menedżer wersji węzła. Obecnie próbuję automatycznie zainstalować moje środowisko programistyczne i produkcyjne za pomocą Bash i zapomniałem, od czego zacząłem iw jakiej kolejności. Po zainstalowaniu npm stwierdziłem, że nasz nvm nie został zainstalowany.

Czy nadal muszę instalować nvm? Jeśli tak, jakie są z tego korzyści?


5
nvm instaluje Node, który instaluje npm. Jeśli nie potrzebujesz / nie chcesz przełączać się między wersjami Node, prawdopodobnie nie potrzebujesz nvm.
— Felix Kling

Odpowiedzi:


98

nvm(Node Version Manager) to narzędzie umożliwiające pobieranie i instalowanie Node.js. Sprawdź, czy masz go zainstalowanego przez nvm --version.

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash

npm(Node Package Manager) to narzędzie umożliwiające instalację pakietów javascript. Sprawdź, czy masz go zainstalowanego przez npm --version.

npmjest dostarczany z Node.js, więc jeśli masz zainstalowaną aplikację node ( node --version), najprawdopodobniej również ją npmzainstalowałeś.

Nie potrzebujesz, nvmchyba że chcesz zachować wiele wersji Node.js zainstalowanych w swoim systemie lub jeśli chcesz zaktualizować swoją obecną wersję.


1
co oznacza, że ​​mogę używać nvm install watchmanzamiast, npm install watchmanponieważ nie chcę zmieniać wersji npm
— AVI

@JokerFan To nie do końca prawda. Nie możesz biec nvm install watchman. Gdy zmienisz swoją wersję nodewraz nvmz wersją npmzmian.
— ThomasReggi

2
Czy ma sens posiadanie wielu wersji Node.js w systemie?
— Ajay S

2
@AjayS Możesz pracować nad dwoma oddzielnymi projektami, które mają bardzo specyficzne wymagania dotyczące wersji węzła, bardzo typowe dla wykonawców.
— Juan Mendes

23

nvm jak powiedziałeś jest "aktywnym" menedżerem wersji nodejs. Możesz mieć wiele wersji węzła na tej samej maszynie i przełączać się, wykonując „nvm use version”. npm szanuje nvm, jeśli jest obecny na komputerze, co oznacza, że ​​jeśli masz aktywny 0.12.7 i wykonujesz npm install -g uuid, zainstaluje go globalnie pod 0.12.7, ale jeśli przełączysz się na 4.0.0, uuid nie będzie już dostępne na całym świecie.

W każdym razie do zainstalowania pakietów niekoniecznie potrzebujesz nvm.


która wersja jest domyślnie dostarczana z NVM?
— JohnTheBeloved

@JohnTheBeloved: None. nvm domyślnie wskazuje wersję twojego systemu operacyjnego.
— Felix Kling

1
@FelixKling ma rację. Możesz użyć „nvm ls”, aby zobaczyć wersje używane przez nvm, a także „node -v”, aby zobaczyć aktualnie aktywny węzeł.
— masimplo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.