
プロジェクトごとにNodeのバージョンを随時切り替えるのが面倒だなとツイッターで呟いたところ、SOUさんにndenv、ついでにanyenv使うと良いですよと教えてもらったので、自分の環境をこれに変更しました。
その時のメモです。
anyenv とは
Nodeのバージョン管理はndenv、 Rubyのバージョン管理はrbenvというのがありますが、anyenvはそれら~envをまとめて管理できるツールです。
https://github.com/riywo/anyenv
現状環境の削除
これまでnvmを使っていたので環境から削除
- ~/.nvm ディレクトリを削除
- ~/.bash_profile に記述しているnvmの項目を削除
anyenv のインストール
ここからはハムさんのブログを参考にさせていただきました
Node.js の管理を「nodebrew」から「anyenv」に変更。 Ruby も Node.js でプロジェクトごとに使うバージョンを切り替える環境にしてみた
GitHubからのクローン
git clone https://github.com/riywo/anyenv ~/.anyenv
パスの設定
~/.bash_profileにパスの設定を書き込みます。ハムさんと同じく僕もMac環境なのでそのまま引用
export PATH=$HOME/.anyenv/bin:$PATH eval "$(anyenv init -)"
bash系のファイルは編集したら下記コマンドを実行して編集内容を有効にします。
source ~/.bash_profile
ndenv と rbenvのインストール
anyenv install rbenv
anyenv install ndenv
インストールされているかの確認
anyenv version
ndenv: system (set by /Users/USERNAME/.anyenv/envs/ndenv/version) rbenv: system (set by /Users/USERNAME/.anyenv/envs/rbenv/version)
とか出てくればインストール出来ています。
あとはそれぞれ~env を利用してパッケージのインストールです。コマンドは最初の指定を変えるのみで、それ以降は同じになります。
~env install -l
~env の箇所を変えるだけ.
インストール可能なバージョンの確認
ndenv install -l
インストールできるバージョンのリストが表示されるので、インストールしたいバージョンを選んでインストールします。
Node.jsのインストール
既存のプロジェクトで v4.4.7を使っていたのと、自動切り替えのテストを行いたかったのでとりあえず v6.11.3 をインストールしました
ndenv install v4.4.7 ndenv install v6.11.3
インストールされているバージョンの確認
ndenv versions
こちらもバージョンのリストが表示されます。現段階ではインストールされていますが、どれを使うかの設定がされていません。
使うバージョンの指定
ndenv global v6.11.3
グローバルで使うバージョンを v6.11.3 で指定しました。
バージョンの確認
node -v
Nodeのバージョンを確認して、指定した通りになっているかを確認します。
プロジェクトで利用するバージョンを指定する
自分のプロジェクトディレクトリに移動します。下記の移動先はご自身のプロジェクトディレクトリに合わせてください。
cd /project/sample/
このプロジェクトで使うNodeがv4.4.7なので、下記コマンドを実行します
ndenv local v4.4.7
このコマンドを実行すると、プロジェクトディレクトリ内に .node-version
というファイルが作成されます。
このファイルが存在するディレクトリでは、Nodeのバージョンがこのファイルで指定されているバージョンに自動で変更されます。
ですので、これまでのようにプロジェクトに合わせて手動でNodeのバージョンを切り替えなくて済むようになりました。
SOUさん、ハムさんありがとうございました!
追記
anyenv のアップデート方法
https://github.com/znz/anyenv-update
GitHub にあるプラグインを利用。
mkdir -p anyenvがインストールされているディレクトリ/plugins git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
参考文献
- anyenv: GitHub
- Node.js の管理を「nodebrew」から「anyenv」に変更。 Ruby も Node.js でプロジェクトごとに使うバージョンを切り替える環境にしてみた: HAM MEDIA MEMO
Comments