nodenvを導入する
新しいPCに変えたときなどに毎回インストール手順を忘れてしまうので備忘録的にまとめておきます。
環境によってNodeのバージョンを切り分けられるものは nodebrew, ndenv, 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使っておけばバージョンも明示しておけますし、自動で切り替えられるので非常に便利ですね。