私はnodeで開発するときにnodeのversion管理ツールでnodenvを使用しています
osがmacの場合、brewで直接nodeをインストールするよりnodenvを使用したほうが管理しやすいです
今回はnodenv入門ということで公式の通りにインストールしていきたいと思います

目次

Introduction

今回はbrewでnodenvをインストールする方法ではなくgithubから直接取得する方法を採用します

This will get you going with the latest version of nodenv without needing a systemwide install.

githubから直接インストールするとシステム全体のインストールではなく最新のnodenvを使用することが可能になります

$ git clone https://github.com/nodenv/nodenv.git ~/.nodenv

次に任意ですが、以下のコマンド実行することによりbash拡張機能をコンパイルして、nodenvを高速化することができます

Don’t worry if it fails; nodenv will still work normally

もしコマンドで失敗しても特に問題ないそうです

$ cd ~/.nodenv && src/configure && make -C src

次にnodenvのコマンドを使用できるように $PATHに~/.nodenv/binを追加します。 筆者はzshなので以下のコマンドになります

$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.zshrc

次にnodenvのセットアップをします

# nodenv初期化
$ ~/.nodenv/bin/nodenv init
# Load nodenv automatically by appending
# the following to ~/.zshrc:

eval "$(nodenv init -)"

# 上記コマンドをzshrcに追加し初期化を自動化させる
$ echo 'eval "$(nodenv init -)"' >>  ~/.zshrc

## シェルを初期化して設定を適用させる
$ source  ~/.zshrc

これでnodenvのインストールが完了しました 正しくインストールされているか確認してみましょう

$ 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 3.0.22-4-g49c4cb9)
Counting installed Node versions: none
  There aren't any Node versions installed under `~/.nodenv/versions'.
  You can install Node versions like so: nodenv install 2.2.4
Auditing installed plugins: OK

こんな感じにOKと表示されれば問題ありません

nodenvのプラグイン導入

nodenvはいくつかのプラグインが用意されておりnodenvを使用する際、必須と言えるものもあるので紹介していきます
全貌はこちら → https://github.com/nodenv/nodenv/wiki/Plugins

node-build

nodenvに必須と言える nodenv installを提供する

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

node-build-update-defs

A nodenv plugin that provides a nodenv update-version-defs command to create node-build-compatible definitions from nodejs.org.

node-buildが最新のnodeバージョンを提供していなくても、nodejsの公式から最新バージョンを更新できます nodejsの最新版が出たらすぐにnode-buildの対応を待たずに使用できます!

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

使用方法/コマンド

いくつかあるので代表的なものだけ紹介します
全貌はこちら → https://github.com/nodenv/nodenv#command-reference

nodenv install

# nodenvでインストール可能なnodeバージョン一覧
$ nodenv install -l

# 指定したnodeのバージョンをインストールする
$ nodenv install 18.8.0

# installしたバージョンをnodenvに認識させる
$ nodenv rehash

nodenv (local|global) xxx

実際に指定したnodeのバージョンを使用できるようにする

# globalに適用させる場合
$ nodenv global 18.8.0

# 特定のディレクトリ配下(local)に適用させる場合
$ cd ~/xxx/project
$ nodenv local 18.8.0

nodenv version

現在のnodeバージョンを表示する。また指定nodeバージョンがどこから読みこまれているか表示される

$ nodenv versions
  12.18.1
  14.17.4
  14.17.5
  14.19.1
  16.13.2
* 18.8.0 (~/.nodenv/version)

$ nodenv version
# globalのバージョンを参照している場合
18.8.0 (~/.nodenv/version)
# localのバージョンを参照している場合
18.8.0 (~/xxx/project/.node-version)

localだと.node-versionがコマンド実行したディレクトリに作成されます localの解除

$ nodenv local --unset
# .node-versionが削除される

nodenv update-version-def

nodejs.orgから使用可能なnodeのバージョンをインストール可能にする

$ nodenv update-version-defs
Checking for new nodejs versions
18.8.0 written

終わりに

nodenvの入門ということで前提知識からよく利用するコマンドまで紹介しました
これでnodeのバージョン管理で困ることはないでしょう
今回は基本的な使用方法を紹介しましたが、次は応用的なことも紹介できたらなと思います

参考

github nodenv