mintsu's blog

nodenvを導入する方法

2020-05-09 16:00:00
フロントエンド

nodenvを導入する

新しいPCに変えたときなどに毎回インストール手順を忘れてしまうので備忘録的にまとめておきます。
環境によってNodeのバージョンを切り分けられるものは nodebrew, ndenv, nodenvなど複数あるのですが、
プロジェクトごとに切替可能で、最新のものであるnodenvを今回は使います。

nodenv

目次

環境

OS:mac

導入手順

Homebrewを導入する

Homebrew は macOS 用パッケージマネージャーです。
macOS 用パッケージマネージャー — Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

nodenvの導入

インストール

下記コマンドでインストールを行います

brew install nodenv

初期化のためnodenv initコマンドを打つ必要がありますが、ログイン時に自動的に読まれるようにbash_profileに記述しておきます

echo 'eval "$(nodenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

このあともしうまく読み込まれていないようでしたら、ターミナルを再起動すれば読み込まれるはずです。

検証

設定は完了しましたが、設定がうまく行っているか検証してくれるスクリプトがあるのでそちらで確認します。

$ curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
Checking for `nodenv' in PATH: /usr/local/bin/nodenv
Checking for nodenv shims in PATH: OK
Checking `nodenv install' support: /usr/local/bin/nodenv-install (node-build 4.6.1)
Counting installed Node versions: none
  There aren't any Node versions installed under `/Users/{ユーザ名}/.nodenv/versions'.
  You can install Node versions like so: nodenv install 2.2.4
Auditing installed plugins: OK

上記のような出力で、OKが出ていれば問題有りません

node のインストール

先程導入したnodenvを利用して任意のバージョンのnodeをインストールしていきます。

nodenv,node-buildのアップデート

nodenvの導入直後であれば問題ないですが、nodeの最新版を入れる際に古いnodenv,node-buildの場合入れることができない場合があります。
なのでまずnodenv,node-buildを最新化します

brew upgrade nodenv node-build

インストールできる node のすべてのバージョンを表示

$ nodenv install -l
Available versions:
~ 省略 ~
13.10.0
13.10.1
13.11.0
13.12.0
~ 省略 ~

大量に出てきますが、今回は現時点で最新の13.12.0 を入れていきます

nodenv install

nodenv install 13.12.0

バージョンを指定してnodenv installコマンドを打つことで任意のバージョンのnodeをインストールすることができます

任意のバージョンのnodeを使う

インストールまでは完了しましたが、このままではまだnodeの利用ができません。
使うnodeのバージョンを下記コマンドで選択します

$ nodenv global 13.12.0
$ node --version
v13.12.0

nodenv global {nodeのバージョン} で任意のnodeのバージョンに切り替えることができます。

特定のディレクトリでバージョンを切り替える

プロジェクトによって違うnodeのバージョンを使いたいということはよくあると思います。
そんなときにも、ディレクトリごとにnodeのバージョンを切り替えが可能です。

例えばprojectAというディレクトリ配下では12.1.0というバージョンを使いたい場合は初回に下記の様にコマンドを打ちます

cd projectA
nodenv local 12.1.0

nodenv local {任意のnodeのバージョン} というコマンドで切り替えられます。

このコマンドを打つとそのディレクトリ配下に.node-versionというファイルが作られて以後はそこに書いてあるバージョンのnodeが使われるようになります。
nodenvを使っている前提であれば.node-versionもgitなどにはコミットしてしまうと管理が楽になりますね。

さいごに

nodenvを使うとnodeのバージョン管理が非常に楽になります。
nodeのバージョンは結構上がるので、常に最新のnodeを使っているといつのまにか古いプロジェクトが動かなくなってるなんてこともあるかと思います。
nodenv使っておけばバージョンも明示しておけますし、自動で切り替えられるので非常に便利ですね。