BETA

[Mac]Node.jsをバージョン管理システムnodebrewで環境構築する

投稿日:2020-06-22
最終更新:2020-06-22

nodebrew

nodebrewはMac向けのNode.jsバージョン管理システムです。
Node.js単体でインストーラーを使って環境構築しても良いですが、バージョンを切り替えたい時非常に面倒なので簡単にバージョンを切り替えられるようにバージョン管理システムを使って環境構築しましょう。

Windowsの方は[Windows]Node.jsをバージョン管理システムNodistで環境構築するを参照して下さい。

前提環境

  • MacOS Catalina v10.15.5
  • Homebrew v2.4.0
  • nodebrew v1.0.1
  • Node.js v12.18.1

Homebrew、nodebrew及びNode.jsは執筆時の最新バージョンで記載しています。
HomebrewについてはHomebrewって何?プログラミングをするならMacのパッケージ管理システムを導入しておこう | L'7 Recordsをご覧ください。

Homebrewがインストールされているかどうかはバージョン確認で行えます。

$ brew -v  
Homebrew 2.4.0  

バージョンが返ってくればインストールされています。

※以下Homebrewがインストールされている前提で解説します。

Node.jsの確認

nodebrewインストール前に、既存でNode.jsがインストールされているか確認します。
もし既にNode.jsがインストールされている場合、nodebrewで管理するNode.jsとバッティングしてしまうので一度アンインストールしておきましょう。

$ node -v  
v12.18.1  

こんな感じでバージョンが返ってきたらNode.jsがインストールされています、アンインストール後以下を進めて下さい。

インストール

$ brew install nodebrew  
Updating Homebrew...  

==> Downloading https://github.com/hokaccha/nodebrew/archive/v1.0.1.tar.gz  
==> Downloading from https://codeload.github.com/hokaccha/nodebrew/tar.gz/v1.0.1  
######################################################################## 100.0%  
==> Caveats  
You need to manually run setup_dirs to create directories required by nodebrew:  
  /usr/local/opt/nodebrew/bin/nodebrew setup_dirs  

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

To use Homebrew's directories rather than ~/.nodebrew add to your profile:  
  export NODEBREW_ROOT=/usr/local/var/nodebrew  

Bash completion has been installed to:  
  /usr/local/etc/bash_completion.d  

zsh completions have been installed to:  
  /usr/local/share/zsh/site-functions  
==> Summary  
:beer:  /usr/local/Cellar/nodebrew/1.0.1: 8 files, 38.6KB, built in 2 seconds  

これでnodebrewのインストールは完了ですが、インストール中に出てくる指示に従って設定を行います。

//ディレクトリ作成  
$ nodebrew setup  

続いてシェルにPathを追加します。
macOS Catalinaからシェルがzshに変わっているので、ご自身がお使いのシェルに合わせて~/.zshrc~/.bash_prolifeどちらかにPathを追加しましょう。

//シェルがzshの場合  
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc  

//シェルがbashの場合  
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile  

どのシェルを使っているかわからない場合は、ターミナル上部を見るか以下のコマンドで調べます。

$ echo $SHELL  
//zshの場合  
/bin/zsh  

//bashの場合  
/bin/bash  

インストールの確認

$ nodebrew -help  
nodebrew 1.0.1  

~略~  

nodebrew -helpで色々コマンドが表示されるので分かりづらいですが、最上部にバージョンが表示されていればOKです。

No such file or directory at /usr/local/bin/nodebrew line 575.  

こんなエラーが返ってきたら設定が上手く行っていない可能性があります。

  • nodebrew setupコマンドを実行したか
  • シェルにPathを通したか
  • Pathを通すシェルが間違っていないか

一度確認してみましょう。

nodebrewでNode.js安定版をインストールしバージョン確認まで

詳しいコマンド解説は後ほど行うので、まずはインストールとコマンド確認まで行います。

基本的にはバージョンの一番大きな数字が偶数のものが安定版、奇数のものが最新版になります。
安定版はLTS(Long Term Support)とも呼ばれ、サポートが長い事も特徴です。
特に理由が無い限り偶数(ヴァージョン8.xx.xx、10.xx.xx、12.xx.xx等)で始まるバージョンを使用すると良いと思います。

今回は安定版(LTS)を利用します。

//現在のNode.jsインストール状況を確認    
$ nodebrew list  
non installed //まだどのバージョンもインストールされていない   

current: none  

//Node.js安定版をインストール    
$ nodebrew install-binary stable  

//インストールされているNode.jsの確認    
$ nodebrew list  
v12.18.1  

current: none;  

//今インストールした最新版に切り替え    
$ nodebrew use 12.18.1  
use 12.18.1  

//バージョンの切り替わりを確認    
$ nodebrew list  
v12.18.1  

current: v12.18.1  

//Node.jsのバージョン確認  
$ node -v  
v12.18.1  

以上で安定版のNode.jsをインストールできました。

環境によってはnodebrew install-binary stableコマンドが効かない場合があるので、その場合はNode.js公式をチェックしてLTSのバージョンを入れてみて下さい。

nodebrewコマンド

インストールされているNode.jsの確認

$ nodebrew ls  
$ nodebrew list  
v12.18.1  

current: v12.18.1  

nodebrew lsnodebrew listのエイリアスなのでどちらを使ってもOKです。
currentに表示されているバージョンが現在使用しているNode.jsのバージョンです。

導入できるNode.jsの確認

$ nodebrew ls-remote  
$ nodebrew ls-all  

どちらもインストール可能なバージョンが表示されますが、nodebrew ls-allは最後にLocalとして既にLocalにあるバージョンを表示してくれます。

Node.jsのインストール

$ nodebrew install-binary [バージョン]  

例えばNode.js 12.17.0をインストールする場合以下のようになります。

$ nodebrew install-binary v12.17.0  

以下のように安定版、最新版を指定する事も可能です。

//安定版  
$ nodebrew install-binary stable  

//最新版  
$ nodebrew install-binary latest  

stablelatestは環境によって使用できない事があるので、その場合はバージョンを指定してインストールして下さい。

Node.jsのアンインストール

$ nodebrew uninstall [バージョン]  

バージョン切り替え

$ nodebrew use [バージョン]  

違うバージョンに設定をマイグレーション

$ nodebrew migrate-package [バージョン]  

nodebrew useでバージョンを変更すると、npmでインストールしていたパッケージが使用できなくなります。

//現在のNode.jsバージョンを確認  
$ nodebrew ls  
v12.18.1  
v14.4.0  

current: v12.18.1  

//試しにgulpをインストール  
$npm install -g gulp  

//gulpのバージョン確認  
$ gulp -v  
CLI version: 2.3.0  
Local version: Unknown  

//Node.js切り替え  
$ nodebrew use 14.4.0  

//Node.jsのバージョン切り替わりを確認  
$ nodebrew ls  
v12.18.1  
v14.4.0  

current: v14.4.0  

//gulpコマンドを使ってみる  
$ gulp -v  
zsh: command not found: gulp  

こんな感じで12.8.1では使えていたgulpコマンドが14.4.0に切り替えたら使用できなくなってしまいました。
そのため、パッケージにバージョンの変更を伝えて新しいバージョンで使用できるようにします。

$ nodebrew migrate-package 12.18.1 //旧バージョンを指定する  
Try to install gulp ...  
~中略~  
Installed successfully:  
gulp  

//gulpコマンドを使ってみる  
$ gulp -v  
CLI version: 2.3.0  
Local version: Unknown  

非常に簡単に環境移行ができました。

アップデート

$ nodebrew selfupdate  

通常nodebrewそのものはHomebrewで管理するので、selfupdateコマンドを使うことはありません。

インストールファイルの削除

$ nodebrew clean [バージョン] | all  

Node.jsインストール時のインストールファイル等を削除します。

ヘルプ

$ nodebrew help  
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@braveryk7の技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう