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
fiNode.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環境のものが使用されます。