NPMとNVMの違い


82

私が知っているNPMは、パッケージマネージャであるとNVMは、ノードのバージョンマネージャです。現在、Bashを使用して開発環境と本番環境を自動インストールしようとしていますが、どのように、どのような順序で開始したかを忘れてしまいました。npmをインストールした後、nvmがインストールされていないことがわかりました。

それでもnvmをインストールする必要がありますか?もしそうなら、利点は何ですか?


5
nvmは、npmをインストールするノードをインストールします。ノードのバージョンを切り替える必要がない/切り替えたくない場合は、おそらくnvmは必要ありません。
Felix Kling 2015

回答:


96

nvm(Node Version Manager)は、Node.jsをダウンロードしてインストールできるツールです。を介してインストールされているかどうかを確認してくださいnvm --version

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

npm(ノードパッケージマネージャー)は、JavaScriptパッケージをインストールできるツールです。を介してインストールされているかどうかを確認してくださいnpm --version

npmNode.jsが付属しているため、ノードがインストールされている場合は(node --version)、おそらくnpm同様にインストールされています。

nvmNode.jsの複数のバージョンをシステムにインストールしたままにする場合、または現在のバージョンをアップグレードする場合を除いて、必要ありません。


1
つまり、npmのバージョンを変更したくないので、nvm install watchman代わりに使用できnpm install watchmanます
AVI

@JokerFanそれは正確には真実ではありません。実行できませんnvm install watchman。あなたは、お使いのバージョンを変更した場合nodenvmのバージョンnpmにも変化。
ThomasReggi 2017

2
システムに複数のバージョンのNode.jsを配置することは理にかなっていますか?
Ajay S

2
@AjayS請負業者に非常に一般的な、非常に特定のノードバージョン要件を持つ2つの別々のプロジェクトで作業する場合があります。
フアンメンデス

23

あなたが言ったように、nvmは「アクティブな」nodejsバージョンマネージャーです。同じマシン上に複数のバージョンのノードを配置し、「nvmuseversion」を実行して切り替えることができます。npmはnvmがマシンに存在する場合、それを尊重します。つまり、0.12.7がアクティブで、npm install -g uuidを実行すると、0.12.7でグローバルにインストールされますが、4.0.0に切り替えると、uuidはなくなります。グローバルに利用可能。

いずれにせよ、パッケージをインストールするために必ずしもnvmは必要ありません。


どのバージョンがデフォルトでnvmに付属していますか?
JohnTheBeloved 2015

@JohnTheBeloved:なし。nvmは、デフォルトでOSのバージョンを指します。
Felix Kling 2015

1
@FelixKlingは正しいです。「nvmls」を実行してnvmで使用されているバージョンを確認したり、「node-v」を実行して現在アクティブなノードを確認したりできます。
masimplo 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.