node.jsのバージョン管理 - Nodebrewのインストールと基本操作


数多の類似記事があるから放置していたのですがアップデートしました。

今までの記事でたびたび書いておいたのですが、参照するためにもひとつの記事にまとまっていた方がよいなと思い、Nodebrew関連について書いておきます。

Nodebrewのインストール方法について

Nodebrew自体も管理をラクにするためHomebrewでインストールしたいと思います。

curlでのインストール推奨です。

Nodebrewのインストール

curlコマンドでインストールしたあとにパスを通すという2ステップです。
パスを通す際にさわるファイルがシェルの種類(bashとかzshとか)によって違いますので、その部分は適宜変更ください。
bashとかzshとかわからない人は以下のコマンドをターミナルで入力すればわかるはずです。

echo $SHELL

ぼくの場合は、/usr/local/bin/zshと返ってくるのでzshです。
それではbrewでnodebrewをインストールしましょう。

curl -L git.io/nodebrew | perl - setup

vim ~/.zshrc # bashを使っている人は~/.bash_profileに適宜変更ください。

insertモードで、以下を貼り付けて、エスケープして保存して終了 :wq

export PATH=$HOME/.nodebrew/current/bin:$PATH

設定ファイルを読み込み直します。別にターミナル再起動でも問題ないです。

source ~/.zshrc # bashを使っている人は~/.bash_profileに適宜変更ください。

動作確認をしてみます。

nodebrew help

Nodebrewを使ってみる

Nodebrewでnode.jsあるいはio.jsをインストールする際は、インストールしてユーズという2ステップを踏みます。複数バージョン使い分けできるので、別のバージョンにというときは他のものをユーズって感じです。

インストールする

インストールできる一覧を確認してみましょう。ちなみにnodebrewは安定版(stable)もしくは最新版(latest)を指名してインストールすることもできますので、特にインストールするバージョンはなんでもよいという方はそちらをどうぞ。

nodebrew ls-remote

### 中略 ###

v0.10.32  v0.10.33  v0.10.34  v0.10.35  v0.10.36  v0.10.37  v0.10.38  v0.10.39
v0.10.40

v0.11.0   v0.11.1   v0.11.2   v0.11.3   v0.11.4   v0.11.5   v0.11.6   v0.11.7
v0.11.8   v0.11.9   v0.11.10  v0.11.11  v0.11.12  v0.11.13  v0.11.14  v0.11.15
v0.11.16

v0.12.0   v0.12.1   v0.12.2   v0.12.3   v0.12.4   v0.12.5   v0.12.6   v0.12.7


### 中略 ###

[email protected] [email protected] [email protected] [email protected]

[email protected] [email protected] [email protected]

[email protected]

[email protected] [email protected]

[email protected] [email protected] [email protected] [email protected] [email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

このズラーっと並んだ一覧からインストールするのですが、インストールにはnodebrew install <version>nodebrew install-binary <version>のふたつのコマンドがあります。installだけの場合はソースから引っ張ってきて、install-binaryの場合はバイナリで落としてくると。前者はコンパイルがあるので割と遅いです。 体感70倍近い時間がかかります。
後者の方が公式でも推奨されているみたいですので、後者を使っていきます。

nodebrew install-binary [email protected] #io.js v3.2.0をインストール

これにてインストール完了です。

使用するバージョンの選択

あたりまえといえばあたりまえですが、Nodebrewを使うことで複数のバージョンのnode.jsがインストールされている状態なので、どのバージョンを使うかは指定しないとわかんないですよね。
まずは、ローカルにインストールされているバージョンを確認してみましょう。

あたらしくインストールした[email protected]を使うにはuseを使う

$ nodebrew use [email protected]

確認してみましょう。

設定の引き継ぎ

これがあるからnodebrew使うようになりましたというくらい便利なコマンド(だと思ってる)。
上の例のように、バージョンを変えたあとには自分で入れたnpmモジュールたちは未インストールの状態です。
しかし、それを引き継ぐことができるコマンドが、nodebrew migrate-packageです

nodebrew migrate-package <version>

これで、指定したバージョンから現在のバージョンに引き継ぎます。
実際にやってみたところこうなりました。

いつもgulpとyoはインストールにコケるので、何事もなくこの2つはnpm i -g gulpとかいった感じでインストールしてます。

このコマンドは本当に便利で、nodeに脆弱性が見つかったときとか乗り換えるための障壁を低くしてくれます。

ここまでのコマンドまとめ

ここまで使ったコマンドをまとめてみました。割とよく使うのばかりです。

コマンド 説明
nodebrew help helpコマンド
nodebrew ls-remote インストールできるバージョンの一覧を表示
nodebrew install-binary <version> 指定したバージョンのインストール
nodebrew ls ローカルの一覧を表示
nodebrew use <version> 使用するバージョンの選択
nodebrew migrate-package <version> 設定引き継ぎ

その他の操作

コマンド 説明
nodebrew list lsと挙動はいっしょ
nodebrew ls-all リモートとローカルのすべてのバージョンを表示
nodebrew install <version> 指定したバージョンのインストール(遅い)
nodebrew uninstall <version> 指定したバージョンのアンインストール
nodebrew clean <version> \ all
nodebrew alias <key> <version> 指定したバージョンにkeyというエイリアスの作成
nodebrew unalias <key> エイリアスの解除
nodebrew exec <version> -- <command> バージョンを指定してコマンドを実行
nodebrew selfupdate nodebrew自体のアップデート

nodebrewのバージョンもHomebrewでアップグレードしてるので、selfupdateはほとんど使わないです。
それとメモ程度に書いておきますが、cleanとuninstallは別物ですので、特定のバージョンを完全削除したい場合は、どちらも実行しましょう。
例を挙げるとこんな感じですかね。

わかりますかね。nodebrew listではv1.2.0はもう存在しません(uninstall済)が、srcを消し忘れていて残っています。これは単なるcleanのし忘れですので、この後にしておきましたと。

参考

GitHub - nodebrew

割とこの記事を書くためにドキュメントを読んだら、さすがにしっかり出来ていてこの記事の存在価値を疑いましたとさ。

前記事 - どんなエディタでもEditorConfigを使ってコードの統一性を高める