nodenvを用いたNode.js環境のセットアップ

Posted on March 21, 2022 by nobiruwa

tl;dr

$ git clone https://github.com/nodenv/nodenv.git $HOME/.nodenv
$ NODENV_HOME="$HOME/.nodenv"
$ NODENV_BIN="$NODENV_HOME/bin"
$ PATH="$NODENV_BIN:$PATH"
$ eval "$(nodenv init -)"
$ mkdir -p $(nodenv root)/plugins
$ git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build
$ cat << EOF >> ~/.profile
NODENV_HOME="$HOME/.nodenv"
NODENV_BIN="$NODENV_HOME/bin"
if [ -d "$NODENV_BIN" ]; then
    export PATH="$NODENV_BIN:$PATH"
    # rehash after init, because my login shell is dash.
    eval "$(nodenv init --no-rehash -)"
    (nodenv rehash &) 2> /dev/null
fi
EOF

動機

jEnvを用いたJava環境のセットアップと同じく、プログラミング言語の開発環境をrbenv/rbenvのフォークであるnodenv/nodenvによって構築したいと思いました。

セットアップ

nodenvのチェックアウト

nodenvリポジトリをチェックアウトします。

場所は公式に合わせて~/.nodenvとします。

さらに、node-buildリポジトリをnodenvのプラグインとしてチェックアウトします。

$ git clone https://github.com/nodenv/nodenv.git $HOME/.nodenv
# 一時的に`$HOME/.nodenv/bin`を`$PATH`に追加してnode-buildをインストールする
$ NODENV_HOME="$HOME/.nodenv"
$ NODENV_BIN="$NODENV_HOME/bin"
$ PATH="$NODENV_BIN:$PATH"
$ eval "$(nodenv init -)"
$ mkdir -p $(nodenv root)/plugins
$ git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build

~/.profileの記述

~/.profileにて、環境変数PATHを設定します。

NODENV_HOME="$HOME/.nodenv"
NODENV_BIN="$NODENV_HOME/bin"
if [ -d "$NODENV_BIN" ]; then
    export PATH="$NODENV_BIN:$PATH"
    # rehash after init, because my login shell is dash.
    eval "$(nodenv init --no-rehash -)"
    (nodenv rehash &) 2> /dev/null
fi

Node.jsのインストール

nodenv installコマンドで~/.nodenv/versions配下に特定のバージョンのNode.jsをインストールします。

# インストール可能なバージョンを列挙する
$ nodenv install --list
# 16.14.2をインストールする場合
$ nodenv install 16.14.2

登録されたNode.jsは下記のコマンドで確認できます。

$ nodenv versions

なお、npm i -gコマンドは~/.nodenv/versions/<nodenv versionsで列挙されるバージョン文字列>ディレクトリ配下にインストールされます。

これだけではコマンドを使用可能になりませんので、nodenv rehashコマンドを実行してください。

すべてのバージョンのbinディレクトリを更新するので少々時間がかかります。

グローバルのNode.js環境

グローバルのNode.js環境を指定します。

$ nodenv global <nodenv versionsで列挙されるバージョン文字列>

ローカルのNode.js環境

ローカルのNode.js環境を設定するには、以下のコマンドを実行します。

$ cd <設定したいディレクトリ>
$ nodenv local <nodenv versionsで列挙されるバージョン文字列>

nodenv localを実行したディレクトリには.node-versionファイルが生成されます。

nodenv localを実行したディレクトリとその子孫ディレクトリで実行するnode/npmコマンド等は、.node-versionで指定されたNode.js環境のものが使用されます。