プロジェクトごとにNode.jsのバージョンを管理できる!?
っていう話を聞いたのでnodenvをインストールすることにしました。
nodebrewだとnodebrew use [バージョン番号]みたいに切り替えるのがめんどくさくて大変で。
nodenvだと簡単にできるっぽいのでこっちを使ってみます。
いろいろなプロジェクトに関わってくるとこういうのがすごくありがたい。
開発者の方に感謝です。
インストールの流れ
- Homebrewのインストール
- anyenvのインストール
- nodenvのインストール
- 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
nodenvだけでいいんじゃないのって思ってましたが、nodenv単体でインストールするときには環境変数など色々操作するみたいですが(そうでもない?)、anyenvを使えばあらあら簡単にインストールできるみたいです。
あと他のenv系ツール使ってたら色々把握するのに面倒だけど、anyenv使ってれば簡単に把握できるみたい。
(間違ってたらご指摘ください・・・)
ということで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)anyenvインストール
とその前にnodebrew用に設定していた環境変数をコメントアウトします。
nodebrewを使っていた人はこちらをやっておいたほうがベターかと。
使ったことないって人はスキップでOK。
僕の場合、nodebrewが優先になるように記述していたのでコメントアウトしました。
% vi .zprofile
# export PATH=$HOME/.nodebrew/current/bin:$PATH# ↑この部分をコメントアウトviを使ってコメントアウトしました。
まあ、テキストエディタならなんでも良いと思うので適宜使いやすいやつを使ってください。
Homebrewを使ってanyenvインストール
さっそくインストールしていきましょう。
% brew install anyenv
そして初期化
% anyenv init
# Load anyenv automatically by adding# the following to ~/.zshrc:eval"$(anyenv init -)"うーん?つまりこの一文を ~/.zshrcに記述しろっちゅうこうとなんやな!
(たぶんbashとか使っている人は~/.bashrcとかになるのかな)
ということで~/.zshrcに追記
% echo'eval "$(anyenv init -)"'>> ~/.zshrc
ターミナルを再起動してみます。
すると。。。
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(もろちん ちん!)」で承諾してます。
これでOKかな?
あってるかどうか念のためターミナルを再起動してみたら今度はエラーが出ない!!(やったー!)
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)するか再起動しろと書いてるので、おしゃれにコマンド打ってみます。
% 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.jsをインストール
以下を実行すれば指定したバージョンをインストールできます。
% nodenv install{バージョン番号}ちなみにアンインストールは~/.nodenv/versionsあるディレクトリを削除すれば良いようです。
以下のコマンドでインストール済みのバージョンを確認できます。shell
% 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っていうファイルができました。
中をみるとバージョン番号が記述されてます。
{バージョン番号}
8.8.0を指定してみたので確認してみましょう。
% node -v
v8.8.0
しゅ、しゅごい!
すごい便利です。
これでNodeの切り替えが楽になりました。
ちなみにnodenv shellコマンドだとシェルごとに変えられるっぽいです。
便利すぎる。。。
是非みなさんも使ってみてください。