是空

駆け出しエンジニアが学んだことをまとめていくブログ

nodenvでnode.jsのバージョン管理

Nodo.js logo

何番煎じだよってぐらいの記事ですが、やったことのメモ程度にまとめたいと思います。

ndenvからnodenvへ移行しました

ndenvのgithubページのREADME.mdへ、2018年12月27日にnodenvへの移行を推奨する文言が追加されました。

Please consider to use nodenv. ndenv repository is not maintained actively.

GitHub - riywo/ndenv: node.js version manager based on rbenv

そうかぁ、入れたばっかりなんだけどな...と思いつつ素直に移行します。

nodenvインストール

https://github.com/nodenv/nodenv

$ brew install nodenv

brewでinstallします。node-buildも一緒にインストールされます。

$ echo 'eval "$(nodenv init -)"' >> ~/.bash_profile

.bash_profileにnodenvをセットアップするコマンドを記述します。

$ exec $SHELL -l

.bash_profileを再読み込みして設定を適用させます。

curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash

nodenv-doctor scriptで、インストールされたか確認します。

Checking for `nodenv' in PATH: /usr/local/bin/nodenv
Checking for nodenv shims in PATH: OK
Checking `nodenv install' support: /usr/local/bin/nodenv-install (node-build 3.0.22-4-g49c4cb9)
Counting installed Node versions: none
  There aren't any Node versions installed under `~/.nodenv/versions'.
  You can install Node versions like so: nodenv install 2.2.4
Auditing installed plugins: OK

のように最後にOKの文字を確認できれば完了。

node -v で出てくるバージョンが違う時

which node

でどこを参照しているか調べます。

/Users/hogehoge/.ndenv/versions/v8.10.0/bin/node

などの.ndenv配下のディレクトリではなく

/usr/local/lib/node

とかだった場合、すでに入っているnodeのバージョンが表示されているので、そちらをアンインストール、もしくは削除します。

削除コマンド例:

$ rm -rf /usr/local/lib/node

rmは削除 -rfオプションは-r-fを含んでおり、詳細は下記です。

オプション名 説明
-r 指定したディレクトリ以下すべてのファイル・サブディレクトリを再帰的に削除
-f 書き込み許可が無くても問い合わせやメッセージ無しで削除
$ node -v
$ nodenv -v

が同じバージョンになれば環境構築完了です。

yarnを使う場合

Yarnは速いと定評のあるパッケージマネージャーです。

node.jsをダウンロードするとデフォルトでnpmをインストールしてくれますが、yarnはインストールしてくれませんので、下記の便利なpluginを利用します。

GitHub - pine/nodenv-yarn-install: Automatically install Yarn after nodenv install

$ mkdir -p "$(nodenv root)/plugins"

pluginsディレクトリを作成します。-pオプションなので、すでにディレクトリがある場合はなにも起こりません。

ちなみに、私はこの時に(nodenv root)を書き換えるのだと勘違いしてなかなか入らず苦戦していました...とくに書き換えずにこのままでOKなんですね。お恥ずかしい。

$ git clone https://github.com/pine/nodenv-yarn-install.git "$(nodenv root)/plugins/nodenv-yarn-install"

作成したディレクトリにgit cloneします。

インストールできたか確認します。

$ exec $SHELL -l
$ ndenv hooks install

ndenv-yarn-install を含んだ何らかのパスが表示されればインストール完了。

まとめ

便利なツールを作ってくださる開発者のみなさまには感謝しかありません。

少しでも情熱をお返しできるように、日々精進いたします。