LoginSignup
321
258

More than 1 year has passed since last update.

MacにNode.jsをインストール(anyenv + nodenv編)

Last updated at Posted at 2019-12-23

nodenvコマンド早見表はこちら

プロジェクトごとにNode.jsのバージョンを管理できる

nodebrewだとnodebrew use [バージョン番号]みたいに切り替えるのが大変ですが、nodenvだと簡単にできるっぽいのでこっちを使ってみます。
いろいろなプロジェクトに関わってくるとこういうのがすごくありがたい。
開発者の方に感謝です。

インストールの流れ

  1. Homebrewのインストール
  2. anyenvのインストール
  3. nodenvのインストール
  4. Node.jsのインストール

・Homebrew

HomebrewはMac用のパッケージマネージャ。
ツールのインストールとか諸々を管理してくれます。
http://brew.sh/index_ja.html
nodebrewをインストールするためにHomebrewを使います。

・nodenv

順番前後しますが、これがメイン。Node.jsのバージョン管理ツール。
https://github.com/nodenv/nodenv

・anyenv

様々なenv系ツールをまとめてくれるらしい。
https://github.com/anyenv/anyenv
他のenv系ツールも含めてインストールを管理してくれるので便利です。
ということでanyenvを使ってみます。

Homebrewインストール

まずはHomebrewから。
Mac使ってるとこれはまあ外せない。
もうインストール済みって人はスキップで。

http://brew.sh/index_ja.html にあるスクリプトを実行する。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

※ 2019/12/23現在は上記

インストール後は以下コマンドでHomebrewのバージョンが確認できます。

コマンド
brew -v

私の場合は以下でした。

結果
Homebrew 2.1.11
Homebrew/homebrew-core (git revision be0385; last commit 2019-09-12)
Homebrew/homebrew-cask (git revision d34609; last commit 2019-09-12)

nodebrew使っている場合

現在nodebrewを使っている場合、nodebrew用に設定していた環境変数をコメントアウトします。
nodebrewを使っていた人はこちらをやっておいたほうがベター。
使ったことないって人はスキップでOKです。
私の場合、nodebrewが優先になるように記述していたのでコメントアウトしました。

コマンド
vi ~/.zprofile
~/.zprofile
# export PATH=$HOME/.nodebrew/current/bin:$PATH
# ↑この部分をコメントアウト

viを使ってコメントアウトしました。
まあ、テキストエディタならなんでも良いと思うので適宜使いやすいやつを使ってください。

anyenvインストール

Homebrewを使ってanyenvインストール

さっそくインストールしていきましょう。

anyenvのインストール
brew install anyenv

そして初期化

初期化コマンド
anyenv init
結果
# Load anyenv automatically by adding
# the following to ~/.zshrc:

eval "$(anyenv init -)"

指示通りに~/.zshrcに追記

コマンド
echo 'eval "$(anyenv init -)"' >> ~/.zshrc

ターミナルをリロードしてみます。

コマンド
exec $SHELL -l
結果
ANYENV_DEFINITION_ROOT(/Users/whoami/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:
> anyenv install --init

You'll see a warning if you don't have manifest directory.

ディレクトリが無いと怒られているので、マニフェストディレクトリ作ります。

マニュフェストディレクトリを作る

指示に通りanyenv install --initと打ってみます。

コマンド
anyenv install --init
結果
Manifest directory doesn't exist: /Users/whoami/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
Cloning https://github.com/anyenv/anyenv-install.git master to /Users/whoami/.config/anyenv/anyenv-install...
Cloning into '/Users/whoami/.config/anyenv/anyenv-install'...
remote: Enumerating objects: 48, done.
remote: Total 48 (delta 0), reused 0 (delta 0), pack-reused 48
Unpacking objects: 100% (48/48), done.

途中check outするかってきたので「y」で承諾します。
再度ターミナルのリロードexec $SHELL -lするとエラーが解消されていることがわかります。

※以下のようなエラーが出る場合があるようです。

エラー
Cloning https://github.com/anyenv/anyenv-install.git master to /Users/xxxxxx/.config/anyenv/anyenv-install...
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

CommandLineToolsがインストールされていないようなので以下のコマンドを実行してインストールしてから再度、anyenv install --initを実行してください。

コマンド
% xcode-select --install

nodenvをインストール

さっそくanyenvでやってみましょう!
anyenv install nodenvを実行すればnodenvがインストールできます。

コマンド
anyenv install nodenv
結果
/var/folders/sn/v1hx7kls3t3f2d9s2r40krns6qc63m/T/nodenv.20191223143232.16265 ~
Cloning https://github.com/nodenv/nodenv.git master to nodenv...
Cloning into 'nodenv'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 3915 (delta 4), reused 13 (delta 2), pack-reused 3897
Receiving objects: 100% (3915/3915), 696.59 KiB | 1.04 MiB/s, done.
Resolving deltas: 100% (2579/2579), done.
~
~/.anyenv/envs/nodenv/plugins ~
Cloning https://github.com/nodenv/node-build.git master to node-build...
Cloning into 'node-build'...
remote: Enumerating objects: 77, done.
remote: Counting objects: 100% (77/77), done.
remote: Compressing objects: 100% (52/52), done.
remote: Total 18197 (delta 33), reused 42 (delta 11), pack-reused 18120
Receiving objects: 100% (18197/18197), 3.19 MiB | 2.46 MiB/s, done.
Resolving deltas: 100% (11638/11638), done.
~
~/.anyenv/envs/nodenv/plugins ~
Cloning https://github.com/nodenv/nodenv-default-packages.git master to nodenv-default-packages...
Cloning into 'nodenv-default-packages'...
remote: Enumerating objects: 267, done.
remote: Counting objects: 100% (267/267), done.
remote: Compressing objects: 100% (151/151), done.
remote: Total 531 (delta 151), reused 202 (delta 105), pack-reused 264
Receiving objects: 100% (531/531), 113.88 KiB | 291.00 KiB/s, done.
Resolving deltas: 100% (272/272), done.
~
~/.anyenv/envs/nodenv/plugins ~
Cloning https://github.com/nodenv/nodenv-vars.git master to nodenv-vars...
Cloning into 'nodenv-vars'...
remote: Enumerating objects: 211, done.
remote: Total 211 (delta 0), reused 0 (delta 0), pack-reused 211
Receiving objects: 100% (211/211), 31.82 KiB | 264.00 KiB/s, done.
Resolving deltas: 100% (76/76), done.
~

Install nodenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.

インストール成功です!
最後にプロファイルのリロードして使用できるようにします。

コマンド
exec $SHELL -l

envで環境変数がどうなったかみてみます。

コマンド
env   
結果
PATH=/Users/whoami/.anyenv/envs/nodenv/shims:/Users/whoami/.anyenv/envs/nodenv/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/sbin:/Users/k
akai/.nodebrew/current/bin
NODENV_ROOT=/Users/whoami/.anyenv/envs/nodenv
NODENV_SHELL=zsh

(他省略)

nodenvやらanyenvのパスがPATHに追加されてますね。
NODENV_ROOTとかNODENV_SHELLみたいなのも追加されてます。
これで下準備は整いました。

Node.jsのインストール

インストール可能なバージョンを見る

コマンド
nodenv install -l

Nodeの最新バージョンを取得するためにanyenv-updateプラグインをインストール

nodenv install -lを実行しても使いたい最新のNodeバージョンが一覧に表示されないことがあります。
最新のNodeバージョン使えるようにするためにanyenv-updateプラグインをインストールします。

コマンド
mkdir -p $(anyenv root)/plugins
git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update

プラグインのインストールは上記で完了です。
以下を実行すればNodeバージョンの一覧を更新することができます。

コマンド
anyenv update

Node.jsをインストール

以下を実行すれば指定したバージョンをインストールできます。

コマンド
nodenv install {バージョン番号}

ちなみにアンインストールは~/.anyenv/envs/nodenv/versionsあるディレクトリを削除すれば良いようです。
以下のコマンドでインストール済みのバージョンを確認できます。

コマンド
nodenv whence npm

nodenv globalでコンピュータのデフォルトに指定

nodenv globalでコンピュータのデフォルトを指定してみます。
指定できるのはインストールしたバージョンです。

nodenv global {バージョン番号}

僕は10.0.0にしてみました。
確認してみましょう。

コマンド
node -v
結果
v10.0.0

10.0.0になってることが確認できます。

nodenv localでプロジェクト指定

nodenv localを使えばプロジェクト指定できるみたいです。
早速使ってみます。

コマンド
# プロジェクトのパスに移動し
cd {プロジェクトのパス}
# 配下で実行
nodenv local {バージョン番号}

実行するとプロジェクト配下に.node-versionっていうファイルができました。
中をみるとバージョン番号が記述されてます。

.node-version
{バージョン番号}

8.8.0を指定してみたので確認してみましょう。

コマンド
node -v
結果
v8.8.0

これでNodeの切り替えが楽になりました。

ちなみにnodenv shellコマンドだとシェルごとに変えられるっぽいです。
是非みなさんも使ってみてください。

参考

nodenv
https://github.com/nodenv/nodenv

anyenv
https://github.com/anyenv/anyenv

anyenv-update
https://github.com/znz/anyenv-update

321
258
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
321
258