Help us understand the problem. What is going on with this article?

anyenv+nodenvでnode.jsの複数バージョンを管理する(MacOS用)

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のインストール

インストール済みかどうか、ターミナルから確認します。

terminal
% xcode-select --version
↓
xcode-select version xxxx.

もし、インストールをしていない場合は、Xcodeのダウンロードページからインストールしてください。(時間かかります。)

すでにnode.jsがインストール済みの場合は削除する

はじめに、node -vを事項して、node.jsがインストール済みか確認します。昨日の自分は赤の他人です。

terminal
% node -v
↓
v12.xx.x

バージョンが表示されてしまったら、node.jsを削除してください。

node.jsがインストールされている場合は削除

こちらの記事を参考にnode.jsを削除します。

terminal
// クイックリファレンス
% which node                      // node.jsの実行時のフルパス取得
% sudo rm -rf /usr/local/bin/node // 実際の削除
% node -v                         // 削除されているか確認
% sudo rm -rf ~/.npm              // npm削除
% npm -v                          // 削除されているか確認

Homebrewをインストールする

Homebrewがインストール済みか確認します。昨日の自分は赤の他人です。

terminal
// インストール済みか確認のために、Homebrewのバージョンを表示する
% brew -v
↓
Homebrew 2.x.xx
Homebrew/homebrew-core (git revision ...)

Homebrewのバージョンが表示された方は、インストール済みです。anyenvのインストールの項へ移動してください。

バージョンが表示されなかった方は、公式ドキュメントを参考にHomebrewをインストールします。
途中インストールユーザのパスワード入力を求められるので記載してEnterキーを押します。

terminal
% /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の動作を確認します。

terminal
% brew help
↓
Example usage:
  brew search [TEXT|/REGEX/]
  brew info [FORMULA...]
  brew install FORMULA...
...

色々と出てきたら、Homebrewのインストール完了です。

anyenvのインストール

公式ドキュメントに沿って、Homebrewでインストールします。

terminal
% brew install anyenv

シェルにanyenvを設定しつつ、シェルの再起動をします。

terminal
% anyenv init
% exec $SHELL -l

anyenv -vでバージョン情報が表示されたらインストール完了です。

terminal
% anyenv -v
↓
anyenv 1.x.x

anyenvのアップデートプラグインを導入

anyenv-updateという、anyenv経由でインストールしたすべての**envをアップデートするプラグインをインストールします。公式ドキュメントに則ってインストールするだけです。

Tips: 最新バージョンのnode.jsなどを使用したい場合は、anyenv updateする必要があります。

terminal
% kdir -p ~/.anyenv/plugins
% git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update

準備OK。

nodenvのインストール

nodenvのインストール前に、anyenvでインストールできる**envの種類を確認してみます。

terminal
% 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をインストールします。

terminal
% anyenv install nodenv

インストールが完了したら、シェルを再起動します。

terminal
% exec $SHELL -l

動作確認のために、nodenv -vでバージョン情報を確認します。

terminal
% nodenv -v
↓
nodenv 1.x.x+x.xxxxxx

nodenvのインストール完了しました。

node.jsをインストールしてみる

公式ドキュメントを掻い摘みつつ、node.jsの最新版をインストールしてみます。

インストールできるnode.jsのバージョンを出力する。

terminal
% 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)をインストールします。

terminal
% nodenv install 14.9.0

globalコマンドで、先ほどインストールした最新版をグローバルに指定し、反映を確認します。

terminal
% nodenv global 14.9.0
↓
% nodenv versions
  system
* 14.9.0 (set by /Users/xxxxxx/.anyenv/envs/nodenv/version)

動作確認のために、node -vでバージョン情報を確認します。

terminal
% node -v
↓
v14.9.0

OK。やっとnode.jsが入りました。

プロジェクト毎に別バージョンのnode.jsを反映する

まずは、installコマンドで使いたいバージョンをインストールする。

terminal
% nodenv install 14.8.0

プロジェクトルートへ移動します。

terminal
% cd <プロジェクトルート>

localコマンドで、使いたいバージョンを指定します。

terminal
% nodenv local 14.8.0
↓
% nodenv versions
  system
* 14.8.0 (set by /Users/xxxxxx/.anyenv/envs/nodenv/version)
 14.9.0

念のため確認します。

terminal
% node -v
↓
v14.8.0

できました!

.node-versionファイルでnode.jsバージョンを共有する

node.jsのバージョンを指定したいプロジェクトルートに、バージョンを書いた.node-versionファイルを置き、インストールされていないnode.jsのバージョンを記載します。

.node-version
// .node-versionファイル
14.7.0

node -vでバージョンを確認をしようとして、インストールされてないよ!と怒られてみます。

terminal
% node -v
↓
nodenv: version `14.7.0' is not installed (set by /Users/xxx/.node-version)

OK。怒られました。
次は、怒られたバージョンをインストールして、確認してみます。

terminal
% nodenv install 14.7.0
% node -v
↓
v14.7.0

OK。指定バージョンのnode.jsが表示されました。

これで、node.js生活もシンプルに。やったね。

amishiro
5年近く作っていた自作テンプレートから離れて、最近はnuxtで開発してる。フロントエンドの未来は明るい。寂しいのでフォロープリーズ。
https://amiten.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした