Blog

Nodeバージョン管理ツール 【nodebrew / n / nodenv】

パソコン買い替えやテレワークなどで、パソコンを初期化したりセットアップし直したりすることが最近多かったのですが、
その度に「あ、このPCにはこのツール入れてなかったか…こっちにしてみようかな…」みたいなことがありまして、
このNodeバージョン切り替えのツールについてもそんな感じで、結局下記3ツール使ってみたので、
その感想をかいておこうと思います。

nodebrew

nodebrewコマンドでインストールしたNode.jsを管理します。
すでに別にNode.jsがインストールされている場合は、削除しておきましょう。

個人的な感想としては、可もなく不可もなくでした。

公式Github

インストール

Homebrewはインストールされていることを前提にしています。

$ brew install nodebrew

インストールできるNodeのバージョンを確認

$ nodebrew ls-remote

Nodeをバージョン指定してインストール

$ nodebrew install vバージョン

例)nodebrew install v16.0.0

最新版Nodeのインストール

$ nodebrew install latest

推奨版Nodeのインストール

$ nodebrew install stable

インストールしたNodeのバージョン一覧確認

$ nodebrew ls

v16.0.0
current: none

・・・のような答えが返ってきます。currentは、有効になってるバージョン。最初は有効になっていません。

Nodeバージョンの切り替え、有効化

$ nodebrew use vバージョン

例)nodebrew use v16.0.0

n

nはnpmパッケージです。
「n」とたたくだけでバージョンの切替を上下キーで選んで切り替えられるのがすごく便利。
一文字というのが画期的!覚えやすい。個人的に3つの中では一番好みです。

公式Github

インストール

グローバルにインストールする場合は下記

$ npm install -g n

/usr/local/ にインストールしたくなければ、公式にあるようにN_PREFIXを用いて保存場所を変えることができます。

export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH

ちなみにusr/localにある場合は、nodeをインストールするときに権限がないので、
sudoをつけてインストールすることになります。

Homebrewを使ってインストールすることもできます。

$ brew install n

インストールできるNode.jsのバージョンを確認

$ n ls

グレーがインストール可能なバージョン、
白文字がインストールされているバージョン、
青丸がついてるのが今適用されているバージョン。

…というように、とても見やすいです。

Nodeをバージョン指定してインストール

$ n バージョン

例)n 12.18.3

最新版Nodeのインストール

$ n latest

推奨版Nodeのインストール

$ n stable

インストールしたNodeのバージョン一覧確認と切替

$ n

この一文字で

  node/11.2.0
ο node/15.6.0
  node/16.0.0

のような形で表示されるので、上下キーで選択できます。

nodenv

nodenvコマンドでインストールしたnode.jsを管理します。
ローカル用にNodeのバージョンを記載したファイルを置くことにより、バージョンが勝手に切り替わるところが便利。バージョンなんだっけ…と迷う時間がなくなります。
インストールできるNodeのバージョンのリストは、何もしなければ基本的にインストール時のものになっています。新しいNodeを入れたいときは、プラグインを使ってリストをアップデートする必要があります。

公式Github

インストール

私はanyenv経由でnodenvをインストールしましたが、Homebrewでのインストールも公式ではお勧めされています。

$ brew install nodenv

~/.bash_profileなどシェル初期化ファイルに下記を追加

eval "$(nodenv init -)"

そのあとシェルを再起動します。

$ exec $SHELL -l

インストールできるNode.jsのバージョンを確認

$ nodenv install --list

Nodeをバージョン指定してインストール

$ nodenv バージョン

例)nodenv 16.0.0

インストールしたNodeのバージョン一覧確認

$ nodenv versions

Nodeバージョンの切り替え、有効化

$ nodenv global バージョン

ローカル固有のNodeバージョンを設定

$ nodenv local バージョン

例)nodenv local 16.0.0
これでカレントフォルダに「.node-version」というファイルができ、
node -v で確認すると、ローカルに設定したバージョンが出ます。

nodenv-updateをインストール

インストールできるNodeのバージョンのリストのアップグレードをしてくれるプラグインです。
公式Github

pluginsフォルダを作ってそこにクローン

$ mkdir -p "$(nodenv root)"/plugins
$ git clone https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update

アップデート

$ nodenv update

最初、これを知らなかったので、「推奨版のNodeがインストールできない!」と思いました。

まとめ

使い勝手がいいのはnで、案件が多くなってきたときに便利だと感じるのはnodenvです。

それにしても、ちょっと前まで「バージョン管理」していると認識なく使ってしまっていたので、いろんなところにNodeがインストールされてる事態になっていました。(しかもマシンによって違うという…もはやバージョン管理ツールに振り回されている状態)

これからは意識して使っていきます。

おすすめの記事 recommend blog

新着 new blog

github