Unterschied zwischen NPM und NVM

82

Ich weiß, dass npm der Paketmanager und nvm der Knotenversionsmanager ist. Ich versuche derzeit, meine Entwicklungs- und Produktionsumgebung mithilfe von Bash automatisch zu installieren, und habe vergessen, wie ich angefangen habe und in welcher Reihenfolge. Nach der Installation von npm stellte ich fest, dass unser nvm nicht installiert war.

Muss ich nvm noch installieren? Wenn ja, was ist der Vorteil?

JohnTheBeloved
quelle
5
nvm installiert Node, das npm installiert. Wenn Sie nicht zwischen Node-Versionen wechseln müssen / möchten, benötigen Sie wahrscheinlich kein nvm.
Felix Kling

Antworten:

96

nvm(Node Version Manager) ist ein Tool, mit dem Sie Node.js herunterladen und installieren können. Überprüfen Sie, ob Sie es über installiert haben nvm --version.

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

npm(Node Package Manager) ist ein Tool, mit dem Sie Javascript-Pakete installieren können. Überprüfen Sie, ob Sie es über installiert haben npm --version.

npmwird mit Node.js geliefert. Wenn Sie also node (( node --version) installiert haben, haben Sie höchstwahrscheinlich auch npminstalliert.

Sie benötigen dies nur, nvmwenn Sie mehrere Versionen von Node.js auf Ihrem System installiert lassen möchten oder wenn Sie Ihre aktuelle Version aktualisieren möchten.

ThomasReggi
quelle
1
was bedeutet, dass ich nvm install watchmananstelle von verwenden kann, npm install watchmanweil ich nicht npm Versionen ändern möchte
AVI
@JokerFan Das stimmt nicht ganz. Sie können nicht laufen nvm install watchman. Wenn Sie Ihre Version von nodemit nvmder Version der npmÄnderungen ändern .
Thomas Reggi
2
Ist es sinnvoll, mehrere Versionen von Node.js auf dem System zu haben?
Ajay S
2
@AjayS Sie können an zwei separaten Projekten arbeiten, für die sehr spezifische Anforderungen an die Knotenversion gelten, die für Auftragnehmer sehr häufig sind.
Juan Mendes
23

nvm ist wie gesagt ein "aktiver" nodejs version manager. Sie können mehrere Knotenversionen auf demselben Computer haben und mit "nvm use version" wechseln. npm respektiert nvm, wenn es auf dem Computer vorhanden ist. Wenn Sie also 0.12.7 aktiv haben und npm install -g uuid ausführen, wird es global unter 0.12.7 installiert. Wenn Sie jedoch zu 4.0.0 wechseln, wird uuid nicht mehr installiert weltweit verfügbar.

In jedem Fall benötigen Sie nicht unbedingt nvm, um Pakete zu installieren.

masimplo
quelle
Welche Version wird standardmäßig mit NVM geliefert?
JohnTheBeloved
@ JohnTheBeloved: Keine. nvm verweist standardmäßig auf die Version Ihres Betriebssystems.
Felix Kling
1
@ FelixKling ist richtig. Sie können "nvm ls" ausführen, um die von nvm verwendeten Versionen anzuzeigen, und "node -v", um den aktuell aktiven Knoten anzuzeigen.
Masimplo