nodeバージョンを管理し、nvmまたはnを選択しますか?


ブログのソース:http://taobaofed.org/blog/2015/11/17/nvm-or-n/
多くの学生はnodeのバージョン管理ツールを選ぶ時、最初の時間に直接nvmを使ったかもしれませんが、一般的には別のツールnを調査することはありません.この2つの特性と違いを理解する余裕はありません.結局ツールが使えばいいので、その仕組みを明らかにする必要はありません.
はい、私も例外ではありませんが、ある日まで......
リード
私はnvmをインストールしていますが、nodeはもともと0.xの古いバージョンで動作していました.その後ES 6を走るためにnodeを4.xに切り替え、古いバージョンを削除しました.
そして私は2つの問題にぶつかった.一つはWebStormがnode解釈器が見つからないと間違えたことだ.解釈器のパスを再設定するしかありません.
WebStormのnode設定
私の記憶では、WebStormはデフォルトでnodeパスを設定する必要はありません./usr/local/bin、すなわち通常のnodeコマンドの場所を探します.nvmを使用してnodeをインストールおよび管理したり、頻繁に切り替えたりすると、手動でnodeパスを指定する必要があります.
しかもこんなハードコーディングの経路(バージョン番号をハードコーディングした)で、優雅ではない・・・
2つ目の問題は、私がグローバルにインストールした様々なnodeモジュールはすべて再インストールする必要があります.グローバルモジュールは各nodeバージョンの自分の砂箱にインストールされているので、古いバージョンのnodeと一緒に埋葬されています.
実際、これがnvmの特性ですが、それが好きかどうかは別です.
いずれにしても、これらの問題が発生したので、状況を少し深く理解することにしました.
nvmとn
nodeのバージョン管理ツールではnvmの自然な名声が高まっているが,TJからのnも忘れられない.この2つは、現在最も主流の案です.
この2つのツールのインストールと使用方法については、ここでは説明しません.それぞれのホームページを参照してください.
creationix/nvm tj/n次にnvmとnの動作メカニズムと特性に注目する.
n
nはグローバルインストールが必要なnpmパッケージです.
npm install-g nこれは、nを使用してnodeバージョンを管理する前に、まずnode環境が必要であることを意味します.私たちはHomebrewでnodeをインストールしたり、公式サイトからpkgをダウンロードしてインストールしたりします.とにかく、私たちはまず自分でnodeをインストールしなければなりません.n自体はあなたにインストールできません.
次に、nを使用して異なるバージョンのnodeをインストールできます.
インストール時にnは指定したバージョンのnodeを保存し、よく知られているパス/usr/local/binにコピーします.簡単です.もちろんnは非ユーザディレクトリに動作するので,コマンドを実行するためにsudoを追加する必要がある.
従って,nはその実現において非常に理解しやすいスキームである.
nvm
またnvmを見てみましょう.nとは異なり、nvmはnpmパッケージではなく、独立したパッケージです.これは、インストールロジックを単独で使用する必要があることを意味します.
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash

またはHomebrewを使用してインストールします.インストールが完了したら、shell構成(~/.zshrc or whatever)を変更する必要があります.詳細は公式ドキュメントを参照してください.
次にnvmを使用して、異なるバージョンのnodeをインストールできます.
インストール時に、nvmは異なるnodeバージョンを~/.nvm//に格納し、$PATHを変更し、指定したバージョンのnodeパスを追加します.これにより、私たちが呼び出したnodeコマンドは指定したバージョンのnodeを使用します.
nvmは明らかにnより複雑であるが、一方、独立したパッケージであるため、nodeとの関係は論理的に見える.nvmはnode環境に依存せず、node依存nvmである.nのように循環依存のような問題は生じない.
どのように選択しますか?
このように見ると、nvmとnの違いは比較的大きく、具体的には:
取り付けの簡単さ.nvmのインストールは明らかに面倒です.nこの実装方式はnodeの慣性思考にもっと合っている.仁見智に会いましょう.システムサポート.nvmではWindowsはサポートされていません.グローバルモジュールの管理.nグローバルモジュールに何の役にも立たないため、nodeバージョンを切り替えた後にグローバルモジュールの実行エラーが発生する可能性がある.nvmのグローバルモジュールはそれぞれのバージョンの砂箱に存在し、バージョンを切り替えた後に再インストールする必要があり、異なるバージョン間でも衝突はありません.nodeパスについて.nは万年変わらない/usr/local/binです.nvmは手動でパスを指定する必要があります.だから、どうやって選ぶの?本当に仁見智ですが、ここでは大体のアドバイスをすることができます.
Windowsを使用する場合は、nを使用するか、Macを交換するかを選択する必要はありません.nodeバージョンを頻繁に切り替える場合(ローカルで最新版の特性を頻繁にテストし、本番環境でのコードの互換性も考慮する場合)、グローバルモジュールの互換性の観点からnvmしか使用できません.軽量レベルのユーザーであれば、互換性の問題を心配する必要がなく、nodeのインストールと使用上の体験に関心を持つ必要がある場合は、nを選択します.もしあなたが聞くなら、スレ主は最終的に誰を選んだのですか?もっと流行っているものを選びましたnvm(git上★もっと)
参照
nvm n Node.js – NVM vs N
エピソード:私がnvmを使ってnに移行しないことを選んだのは、複雑なからです.うーん、もう一度削除したくないからです.