Node.js
バージョン管理
anyenv
ndenv

node.jsをanyenvとndenvを使ってバージョン管理できるようにする


アジェンダ

人から便利なものを教えてもらったのでメモ


  • anyenvのインストール

  • nodenvのインストール

  • Node.jsのインストール


anyenvのインストール


anyenvをダンロードする

[vagrant@localhost ~]$ git clone https://github.com/riywo/anyenv ~/.anyenv

Cloning into '/home/vagrant/.anyenv'...
remote: Counting objects: 284, done.
remote: Total 284 (delta 0), reused 0 (delta 0), pack-reused 284
Receiving objects: 100% (284/284), 43.09 KiB | 0 bytes/s, done.
Resolving deltas: 100% (110/110), done.
[vagrant@localhost ~]$ ls -ltr .anyenv
total 8
drwxrwxr-x. 3 vagrant vagrant 28 Aug 15 08:26 share
-rw-rw-r--. 1 vagrant vagrant 3815 Aug 15 08:26 README.md
drwxrwxr-x. 2 vagrant vagrant 4096 Aug 15 08:26 libexec
drwxrwxr-x. 2 vagrant vagrant 62 Aug 15 08:26 completions
drwxrwxr-x. 2 vagrant vagrant 20 Aug 15 08:26 bin


PATHの設定

profileファイルに以下を追加

anyenvのパスを通すこと、eval "$(anyenv init -)"を追加する

[vagrant@localhost ~]$ cat .bash_profile

## 以下を追加 ###
ANYENV="$HOME/.anyenv/bin"
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ANYENV
export PATH

eval "$(anyenv init -)"


ndenvのインストール

ndenvのversionが確認できればOK

[vagrant@localhost ~]$ anyenv install ndenv

/tmp/ndenv.20180815083714.30384 ~
Cloning https://github.com/riywo/ndenv.git...
Cloning into 'ndenv'...
remote: Counting objects: 63, done.
remote: Total 63 (delta 0), reused 0 (delta 0), pack-reused 63
Unpacking objects: 100% (63/63), done.
~
~/.anyenv/envs/ndenv/plugins ~
Cloning https://github.com/riywo/node-build.git...
Cloning into 'node-build'...
remote: Counting objects: 68, done.
remote: Total 68 (delta 0), reused 0 (delta 0), pack-reused 68
Unpacking objects: 100% (68/68), done.
~

Install ndenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
[vagrant@localhost ~]$ anyenv version
ndenv: system (set by /home/vagrant/.anyenv/envs/ndenv/version)


Node.jsのインストール


Node.jsインストール

ndenv install バージョンでインストール可能。先にインストール可能バージョンをチェック

[vagrant@localhost ~]$ ndenv install -l

Available versions:
v0.1.14
v0.1.15
v0.1.16
v0.1.17
v0.1.18
v0.1.19
v0.1.20
v0.1.21
v0.1.22
v0.1.23
v0.1.24
v0.1.25
v0.1.26
v0.1.27
v0.1.28
v0.1.29

## 省略 ##
[vagrant@localhost ~]$ ndenv install v0.12.7
Downloading node-v0.12.7-linux-x64.tar.gz...
-> https://nodejs.org/dist/v0.12.7/node-v0.12.7-linux-x64.tar.gz
Installing node-v0.12.7-linux-x64...
Installed node-v0.12.7-linux-x64 to /home/vagrant/.anyenv/envs/ndenv/versions/v0.12.7
[vagrant@localhost ~]$ ndenv global v0.12.7
[vagrant@localhost ~]$ node -v
v0.12.7


Node.jsのバージョンを切り替える

新たにv0.12.18をインストールし、ディレクトリ(プロジェクト)で切り替えられるようにする

[vagrant@localhost ~]$ ndenv install v0.12.18

Downloading node-v0.12.18-linux-x64.tar.gz...
-> https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.gz
Installing node-v0.12.18-linux-x64...
Installed node-v0.12.18-linux-x64 to /home/vagrant/.anyenv/envs/ndenv/versions/v0.12.18
[vagrant@localhost ~]$ mkdir hoge1
[vagrant@localhost ~]$ mkdir hoge2
[vagrant@localhost ~]$ cd hoge1
[vagrant@localhost hoge1]$ ndenv local v0.12.18
[vagrant@localhost hoge1]$ node -v
v0.12.18
[vagrant@localhost hoge1]$ cd ../hoge2/
[vagrant@localhost hoge2]$ node -v
v0.12.7



  • hoge1ではv0.12.18


  • hoge2ではv0.12.7

と切り替えが可能となった


追記


  • v0.12.18はそれなりに古いversionらしいので、「v8.11.4」以降をオススメします


    • gulpを利用して開発している際に、npmが正しく動作しないパターンが何度かありました