All Articles

Mac環境にnodenvを使って複数のNodeを共存させる

はじめに

Firebase さんが Node8 系のみで動作するので、Mac の PC に最新の 13 系を Mac にインストール出来ません。>< iOS エンジニア、Web エンジニアの皆さんは、おそらく同様の理由でローカル PC に Node 複数バージョンインストールしてますよね?

Firebase 使うことそこそこあるので、デフォルトは 8 系でよいのですが、特定のディレクトリ上は、ドットファイルで指定した Node のバージョンで動作できないかな?

絶対できる方法があるはず!と検索していたら、nodenv で実現できることがわかりました。

nvm(Node Version Manager)も同様のことが出来るようです

日本語の記事も 2020 年に入ってから書かれたものぽいので、比較的最近注目されているものなのかな?

nodebrew を使うと

nodebrew use xxx

でバージョンを行き来しますよね。これをしなくてよいです!

では早速環境をセットアップしていきましょう!

セットアップ手順

今までありがとう、そしてさようなら nodebrew

自分は、zsh 使っているのですが、 .zshrc におそらく nodebrew の以下のようなコードが存在すると思うので消しちゃって下さい。!

export PATH=$PATH:/Users/masa/.nodebrew/current/bin

nodenv 入れるには、anyenv インストール必要です!

anyenv てなんだろう? anyenv 公式

rbenv のラッパーだそうです。

anyenv インストール

公式見てもらいたいのですが、コマンド貼っておきます。

brew install anyenv
git clone https://github.com/anyenv/anyenv ~/.anyenv
echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(anyenv init -)"' >>  ~/.zshrc
anyenv install --init https://github.com/foo/anyenv-install.git

nodenv インストール

anyenv install nodenv
exec $SHELL -l

特定の Node バージョンインストール

  • インストールできるバージョンを調べる
nodenv install -l
  • インストール+デフォルトバージョン
nodenv install 8.17.0
nodenv global 8.17.0
  • インストールしたバージョンを反映
source ~/.zshrc

特定のディレクトリだけ別バージョンにする

nodenv install 13.11.0
nodenv local 13.11.0

.node-version というファイルが作られて開くと  13.11.0  と記述されていれば成功!

anyenv でインストールしている node のバージョン確認

$ anyenv versions
nodenv:
  system
*  8.17.0
  13.11.0 (set by /Users/masa/.anyenv/envs/nodenv/version)

参考

https://ikkyu.hateblo.jp/entry/2019/10/20/165627 https://qiita.com/tonkotsuboy_com/items/5322d226b6783d25b5df https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c