pythonのpyenvと同様にNode.jsのバージョン管理システムのnodenvを使用する。
(両方インストールするくらいならanyenvを使えという説もあるが...)
他にもnvmやnodebrewなんてのもあるらしい。nodenvはディレクトリごとにローカルバージョンを設定できてとても便利なのでおススメ。
nodeenv(eが2つ)という超マイナーなのもあるけど、間違わないように。
Node.jsはリポジトリにバイナリパッケージが用意されているバージョンはバイナリインストールできる。用意されていないバージョンはソースからコンパイルされるが、必要なライブラリ類のインストールなど必要。ここでは手順は割愛。
インストール
準備
インストールに必要なモジュールをインストールする。インストール済みならスキップして可。
sudo apt install git
nodenv本体のインストール
nodenv本体をインストール。
export NODENV_ROOT=/proj/.nodenv # 環境に合わせて修正してね
git clone git://github.com/nodenv/nodenv.git ${NODENV_ROOT}
git clone https://github.com/nodenv/node-build.git ${NODENV_ROOT}/plugins/node-build
git clone https://github.com/nodenv/nodenv-update.git ${NODENV_ROOT}/plugins/nodenv-update
nodenv-updateをインストールすることで、nodenv本体、各プラグインを nodenv update
で行えるようになる。
~/.bashrcの編集
nodenvの設定のため、~/.bashrc に以下を追加。
export NODENV_ROOT=/proj/.nodenv # 環境に合わせて修正してね
export PATH=$NODENV_ROOT/bin:$PATH
eval "$(nodenv init -)"
ここで設定を有効にするためにターミナルを開きなおす。
設定
nodenvでインストールできるバージョンの一覧を表示
nodenv install -l
バイナリインストールできるか確認したい場合は以下。
バイナリがなければソースからコンパイルされるが、時間がかかるのが嫌な場合に(大抵のバージョンはバイナリが用意されているようだ)。
grep -r `uname -m` ${NODENV_ROOT}/plugins/node-build/share/
# ただし、uname -m が x86_64 | amd64 | i686-64 のときはx64に置き換える
Node.jsのインストール
nodenv install 10.15.3
デフォルトで使用するバージョンの設定
nodenv global 10.15.3
念のため指定したバージョンが実行されることを確認
node -v
仮想環境について
pyenvと異なり、nodenvは仮想環境をサポートしていない。
Node.jsはローカルモジュールのインストールが簡単なので、仮想環境を構築しなくても個々のディレクトリでローカルモジュールをインストールすることで仮想環境相当のことが実現できる。
npmのバージョンアップ
「npmが古い~」と言われる前にバージョンアップ。
npm install -g npm
ローカルで使用するバージョンの設定
ディレクトリ毎に使用するバージョンを指定するには(例えば、このディレクトリ下で作業するプロジェクトは9.11.1を使う、みたいな時)
そのディレクトリで以下のように実行する。
指定はそのディレクトリ直下だけでなく、その子ディレクトリ、孫ディレクトリ、・・・で有効。
shellを閉じても設定は残る。
nodenv local <バージョン名>
一時的なバージョンの切り替え
そのshellだけ使用するバージョンを変更したい場合は、以下のよう実行する。
nodenv shell <バージョン名>
別のターミナルでの実行には影響しない。
nodenvのバージョンアップ
Node.jsの新しいバージョンがリリースされ、それをインストールしたい場合など、nodenvのバージョンアップが必要。
nodenv-updateが入っていれば以下でイッパツ。
nodenv update
nodenv-updateが入っていない場合は以下のように各ディレクトリで git pull
すればよい。
cd ${NODENV_ROOT}
git pull
cd ${NODENV_ROOT}/plugins/node-build/
git pull
実行後、ターミナルを開きなおす
その他
ちょっとだけ使い方一覧。
システムのNode.jsを使いたい場合
nodenv [global | local | shell] system
現在の状態で使用されるバージョン/仮想環境を確認
nodenv version
nodenvでインストールされているNode.jsのバージョンを確認
nodenv versions
現在の状態で使用されるバージョンの先頭に「*」 が付く。
nodenv自体のバージョン確認
nodenv --version
nodenvで使用できるコマンドの確認
nodenv commands
nodenvのヘルプの表示
nodenv help
# 各コマンドのヘルプを表示するには以下
nodenv help <command>