anyenv+nodenvでnode.jsの複数バージョンを管理する(MacOS用)
概略
MacOS用のバージョン管理方法です。
node.jsのバージョン管理マネージャー「nodenv」を通して、.node-versionでnode.jsのバージョン情報を共有しつつ、自動で切り替わるように設定します。
xcode→Homebrew→anyenv→nodenvの順番でインストールの手順で実施します。
自動切り替え最高の体験。
リリース情報確認URL
動作確認済みバージョン
- Homebrew(v 2.4.14)
- anyenv(v1.1.1)
- nodenv(v1.4.0)
- macOS Catalina(v10.15.6)
- terminal(zsh)
更新履歴
- 2020/8/31 初稿
xcodeのインストール
インストール済みかどうか、ターミナルから確認します。
zsh: terminal
% xcode-select --version
↓
xcode-select version xxxx.
もし、インストールをしていない場合は、Xcodeのダウンロードページからインストールしてください。(時間かかります。)
すでにnode.jsがインストール済みの場合は削除する
はじめに、node -v
を事項して、node.jsがインストール済みか確認します。昨日の自分は赤の他人です。
% node -v↓
v12.xx.x
バージョンが表示されてしまったら、node.jsを削除してください。
node.jsがインストールされている場合は削除
こちらの記事を参考にnode.jsを削除します。
zsh: terminal
// クイックリファレンス
% which node // node.jsの実行時のフルパス取得
% sudo rm -rf /usr/local/bin/node // 実際の削除
% node -v // 削除されているか確認
% sudo rm -rf ~/.npm // npm削除
% npm -v // 削除されているか確認
Homebrewをインストールする
Homebrewがインストール済みか確認します。昨日の自分は赤の他人です。
// インストール済みか確認のために、Homebrewのバージョンを表示する
% brew -v↓
Homebrew 2.x.xx
Homebrew/homebrew-core (git revision ...)
Homebrewのバージョンが表示された方は、インストール済みです。anyenvのインストールの項へ移動してください。
バージョンが表示されなかった方は、公式ドキュメントを参考にHomebrewをインストールします。
途中インストールユーザのパスワード入力を求められるので記載してEnterキーを押します。
% /bin/bash -c"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"↓
% Password:鍵マーク
↓
==> Next steps:
- Run `brew help` to get started
- Further documentation:
https://docs.brew.sh
インストール完了時に出てくるNext stepsに従って、Homebrewの動作を確認します。
% brew help↓
Example usage:
brew search [TEXT|/REGEX/]
brew info [FORMULA...]
brew install FORMULA...
...
色々と出てきたら、Homebrewのインストール完了です。
anyenvのインストール
公式ドキュメントに沿って、Homebrewでインストールします。
% brew install anyenv
シェルにanyenvを設定しつつ、シェルの再起動をします。
% anyenv init
% exec$SHELL-l
anyenv -v
でバージョン情報が表示されたらインストール完了です。
% anyenv -v↓
anyenv 1.x.x
anyenvのアップデートプラグインを導入
anyenv-update
という、anyenv経由でインストールしたすべての**env
をアップデートするプラグインをインストールします。公式ドキュメントに則ってインストールするだけです。
Tips: 最新バージョンのnode.jsなどを使用したい場合は、anyenv update
する必要があります。
% kdir -p ~/.anyenv/plugins
% git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update
準備OK。
nodenvのインストール
nodenvのインストール前に、anyenvでインストールできる**env
の種類を確認してみます。
% anyenv install-l↓
Renv
crenv
denv
erlenv
exenv
goenv
hsenv
jenv
jlenv
luaenv
nodenv
phpenv
plenv
pyenv
rbenv
sbtenv
scalaenv
swiftenv
tfenv
いろんな種類の言語が選べます。いいね。
今回は、node.jsのバージョン管理が目的なので、nodenvをインストールします。
% anyenv install nodenv
インストールが完了したら、シェルを再起動します。
% exec$SHELL-l
動作確認のために、nodenv -v
でバージョン情報を確認します。
% nodenv -v↓
nodenv 1.x.x+x.xxxxxx
nodenvのインストール完了しました。
node.jsをインストールしてみる
公式ドキュメントを掻い摘みつつ、node.jsの最新版をインストールしてみます。
インストールできるnode.jsのバージョンを出力する。
% nodenv install-list↓
...
14.7.0
14.8.0
14.9.0
chakracore-dev
chakracore-nightly
chakracore-8.1.2
chakracore-8.1.4
...
いっぱい出てくるけど焦らない。執筆時点では14.9.0
が最新版となります。
最新版をインストールして、グローバルに指定する
install
コマンドで、最新版(執筆時点14.9.0
)をインストールします。
% nodenv install 14.9.0
global
コマンドで、先ほどインストールした最新版をグローバルに指定し、反映を確認します。
% nodenv global 14.9.0
↓
% nodenv versions
system
* 14.9.0 (set by /Users/xxxxxx/.anyenv/envs/nodenv/version)
動作確認のために、node -v
でバージョン情報を確認します。
% node -v↓
v14.9.0
OK。やっとnode.jsが入りました。
プロジェクト毎に別バージョンのnode.jsを反映する
まずは、install
コマンドで使いたいバージョンをインストールする。
% nodenv install 14.8.0
プロジェクトルートへ移動します。
% cd<プロジェクトルート>
local
コマンドで、使いたいバージョンを指定します。
% nodenv local 14.8.0
↓
% nodenv versions
system
* 14.8.0 (set by /Users/xxxxxx/.anyenv/envs/nodenv/version) 14.9.0
念のため確認します。
% node -v↓
v14.8.0
できました!
.node-versionファイルでnode.jsバージョンを共有する
node.jsのバージョンを指定したいプロジェクトルートに、バージョンを書いた.node-versionファイルを置き、インストールされていないnode.jsのバージョンを記載します。
// .node-versionファイル
14.7.0
node -v
でバージョンを確認をしようとして、インストールされてないよ!と怒られてみます。
% node -v↓
nodenv: version `14.7.0' is not installed (set by /Users/xxx/.node-version)
OK。怒られました。
次は、怒られたバージョンをインストールして、確認してみます。
% nodenv install 14.7.0
% node -v↓
v14.7.0
OK。指定バージョンのnode.jsが表示されました。
これで、node.js生活もシンプルに。やったね。