【2019年最新版】macにanyenvでnode.js環境を構築する

前書き

macOS Catalina から
デフォルトシェルがbashからzshになったので
自分用のメモも含めて
Macでのanyenv環境 + node.js環境の構築方法
書き留めておきます。

anyenvをアカウントルートにクローン

まずは、anyenvをOSアカウントのルートにクローンします。

git clone https://github.com/anyenv/anyenv.git ~/.anyenv

.bash_profileではなく.zshrcでパスを通す。

macOS Catalinaからは、zshなので
.bash_profileでパスを通そうとしても機能してくれませんので
.zshrcにパスを通す記述をします。
その前にそもそも、.zshrcというファイルがないのでアカウントルートで
touchコマンドを叩いてやります。

touch .zshrc

.zshrcファイルが作れたら
パスを通す記述と
anyenv initの記述を.zshrcに追加します。

echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(anyenv init -)"' >> ~/.zshrc
exec $SHELL -l

anyenvにupdateサブコマンドを追加

続いてanyenvで管理しているnodenvや、pyenv、rbenvなどを
一括でアップデートしてくれるサブコマンドプラグインを追加します。

git clone https://github.com/znz/anyenv-update.git "$(anyenv root)/plugins/anyenv-update"

「anyenv update」と叩くと
こんな感じになればOK

anyenv update
Updating 'anyenv'...
Updating 'anyenv/anyenv-update'...

nodenvをインストール

anyenvでnodenvをインストール

anyenv install nodenv
exec $SHELL -l

ちなみにanyenv使っていると
「npm i -g」で
グローバルにパッケージインストールとかした時も
やたらと「exec $SHELL -l」は使うので
「exec $SHELL -l」は.zshrcに「xsh」とかでalias作っとくのがオススメです。

node.jsをインストールする前にdefault-packagesを設定しておく

nodenvのdefault-packagesというファイルに
グローバルにインストールしておきたいパッケージを登録しておくと
別のバージョンのnode.jsをインストールした際、
グローバルパッケージのインストールも同時にやってくれます。

違うバージョンのnode.jsをインストールしても、すぐに前使っていたバージョンと同じ環境が整うので
ぜひ、登録しておきましょう。

まずは、nodenvルートにdefault-packagesというファイルを作ります。

touch $(nodenv root)/default-packages

必要なパッケージをdefault-packagesファイルに追記
下記は一例

echo 'npm-check-updates' >> $(nodenv root)/default-packages
echo '@vue/cli' >> $(nodenv root)/default-packages
echo 'firebase-tools' >> $(nodenv root)/default-packages

node.jsをインストール

default-packagesを設定できたら
nodenvでお好みのバージョンのnode.jsをインストールしていきましょう。

# node.jsのバージョン一覧表示
nodenv install -l
# node.jsインストール
nodenv install 10.16.3

まとめ

以上が
macOS Catalinaでのanyenv環境構築方法です。

ちなみに、下記のようなエラーが出たらxcodeのインストールが必要です。

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)

下記のコマンドを実行しましょう。

xcode-select --install