のぐそんブログ

暗いおじさんがシコシコ書くブログです。

ndenvが便利だメモ

いつもグローバルにnode.jsをインストールして、利用していましたがndenvというのを利用すると、プロジェクトごとにnodeのバージョンを管理することができるようなので、利用してみよと思います。

ndenvをインストールする場合はanyenvというツールを利用するのが便利なようです。 anyenvはバージョン管理ツールを管理するツールみたいなものでしょうか。。。

anyenvをクローン

$ git clone https://github.com/anyenv/anyenv ~/.anyenv

.bash_profileにパスを書き込み

ホームディレクトリに移動

$ cd ~/

vimで.bash_profileを編集

$ vi .bash_profile

編集状態にするにはi

#!/bash/profile
export PATH=$HOME/.anyenv/bin:$PATH
export ANYENV_ROOT=/usr/local/anyenv
eval "$(anyenv init -)"

保存して閉じる。

:wq

PATHを通す。 編集ファイルに対してsourceコマンドを実行しないとPATHが反映されない。

$source ~/.bash_profile

ndenvをインストール ※2019/3/19追記 ndenvではなくnodenvが推奨のようです。

github.com

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

$ anyenv install ndenv

インストールされたかを確認

$ anyenv version
ndenv: system (set by /Users/{ユーザーのホームディレクトリ}/.anyenv/envs/ndenv/version)
$ ndenv

Some useful ndenv commands are:
   commands    List all available ndenv commands
   local       Set or show the local application-specific Node version
   global      Set or show the global Node version
   shell       Set or show the shell-specific Node version
   install     Install a Node version using the node-build plugin
   uninstall   Uninstall a specific Node version
   rehash      Rehash ndenv shims (run this after installing executables)
   version     Show the current Node version and its origin
   versions    List all Node versions available to ndenv
   which       Display the full path to an executable
   whence      List all Node versions that contain the given executable

See `ndenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/riywo/ndenv#readme

利用できるnodeバージョンを確認

$ ndenv install -l

利用したいnode.jsをインストール ※複数いれてローカルフォルダで使い分ける感じ

$ ndenv install v10.14.2
$ ndenv install v11.4.0

※私の場合なぜかインストールする際に、以下のエラーでてしまいインストールができませんでした。

mv: rename /var/folders/xl/l_pvr4w524q6zb3n3b2n_42r0000gn/T/nodenv.20190318082825.1007/nodenv to /usr/local/anyenv/envs/nodenv: Permission denied

以下を参考に解決できました。

macos - Permission denied when trying to cd /usr/local/bin from terminal - Super User

インストールしたバージョンを見る

ndenv versions

グローバルで利用するバージョンを指定する

ndenv global v10.14.2

ローカル(sampleフォルダ)で利用するノードのバージョンを指定する。

$ cd sample

利用するバージョンを指定

$ ndenv local v10.14.2

バージョンを確認

$ node -v
v10.14.2

nodeのバージョンを変更する

ndenv localを実行すると、ローカルファイルに.node-versionというファイルが作成されます。 localのnodeバージョンを解除するには.node-versionを削除すれば良いようです。

cat .node-version

まとめ

グローバルに入れなくてよいし、プロジェクトごとに特定のバージョンを利用している場合などにすごく便利です。