Web制作を行う全ての方へ

Nodeのバージョン管理をndenvにし、それに合わせてanyenvを導入したのでメモ

プロジェクトごとに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

参考文献

お役に立てたらお願いします🙇

Kyashで送金する

Ad



Share