本記事では、anyenv
とnodenv
を使ってMacにNode環境を構築する。
nodenvとは
プロジェクト(ディレクトリ)ごとに、Node.jsのバージョンを管理することができるバージョン管理ツールのこと。
なぜnodenvを使用するのか?
仮に、nodenv
を使用せずに、あるプロジェクトAのためにNodeのv7系を固定でインストールすると、別のプロジェクトBにおいてv8系を使用する必要があった際にはNodeのアップデートが必要となってしまう。
nodenv
を使用したバージョン管理をしていると、上記のようなプロジェクトごとに異なるバージョンを使用する際の手間をなくすことができる。
今回はnoodenv
を包括するanyenv
を使ってNodeのバージョン管理を行える環境を構築していく。nodenv
の他にもRubyやPythonのバージョン管理を行う〇〇envも存在し、anyenv
はこれらのバージョン管理ツールを包括的に管理するツールである。
anyenvのインストール
以下のコマンドを実行しanyenv
をインストールする
% brew install anyenv
nodenvをインストールする前にanyenvの初期化
が必要なため初期化を行う。
% anyenv install --init
... Do you want to checkout ? [y/N]: y <- yと答える
remote: Total 62 (delta 1), reused 1 (delta 0), pack-reused 57
Unpacking objects: 100% (62/62), done.
Completed!
anyenv
のインストールに成功したので、次にnodenv
のインストールを行う。
nodenvのインストール
以下のコマンドを実行しnodenv
をインストールする
% anyenv install nodenv
...
Resolving deltas: 100% (76/76), done.
~
Install nodenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
プロファイルの更新のため、以下のコマンドも続けて実行する。
% exec $SHELL -l
インストール可能なバージョンを以下コマンドの実行結果から確認することができればインストールに成功。
% nodenv install -l
0.1.14
0.1.15
...
...
※ nodenv
コマンドの実行に失敗した時の対処方
.zshrc ファイルが未作成のため、nodenv
のパスが設定されていなく失敗する場合は、以下の対処を行うことを勧める
-
vi ~/.zshrc
を実行 -
eval "$(anyenv init -)"
を書き込み保存する - 再度、
anyenv install nodenv
を実行する
Node.jsのインストール
以下のコマンドを実行しNode.jsをインストールする。今回は12.20.0
をインストールする。
% nodenv install 12.20.0
インストール済みのバージョンは以下のコマンドから確認できる。12.20.0
が表示されれば無事にNode.js
のインストールに成功している。
% nodenv whence npm
12.20.0
グローバルのNode.jsのバージョンを指定
以下のコマンドで、インストール済の12.20.0
をグローバルなバージョンとして指定する。
% nodenv global 12.20.0
動作確認
node
コマンドを実行し、12.20.0
が表示されれば無事にNode環境の構築ができている。
% node -v
v12.20.0
ディレクト毎にバージョンを切り替えたい場合
今回は12.20.0
のNodeバージョンを使用できるようにしたが、特定のディレクトリでは8.0.0
を使用したくなったときの手順を最後に紹介する。
- Node.js
8.0.0
をインストール
% nodenv install 8.0.0
-
8.0.0
を使用したディレクトに移動する。(今回はnode-8
)
% cd node-8
- localオプションで
8.0.0
を指定
% nodenv local 8.0.0
- 対象ディレクトリ配下で
node -v
を実行し8.0.0
が表示されれば成功
% node -v
8.0.0
nodenv local 8.0.0
実行時には、指定したバージョンが記載された.node-version
ファイルが生成される。このファイルに指定された値を変更することで使用するバージョンも変更することができる。
参考記事