様々なプログラム言語のバージョンを複数インストールしてバージョンを切替えて使用、管理できる anyenv というツールの存在を知り、node.js 管理の nodenv だけでなく、python、ruby なども pyenv、rbenv を anyenv でまとめて管理できるということで、便利そう!と思い、使ってみることにしました。
現在まで node.js のバージョン管理には nodebrew を使っていました。
node.js 用はとしては、ndenv も nodenv 同様のことができて有名なようですが、あまりアップデートされていないとのことでしたので、node.jsの環境管理は nodenv を選択しました。
設定に苦労したのでメモをまとめておきます。
Anyenv のインストール
anyenv:
https://github.com/anyenv/anyenv
git clone でルートに .anyenv を複製し、
.bash_profile にパスを通したあとにシェルを再起動
$ git clone https://github.com/anyenv/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
インストール後エラーメッセージが表示されてしまったので、
> \e[33mANYENV_DEFINITION_ROOT(/Users/USER_NAME/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by:\e[0m
\e[33m> anyenv install --init\e[0m
エラーメッセージのとおりに再度 anyenv をインストール
$ anyenv install --init
anyenv でインストールできる **env を一覧表示する
$ anyenv install -l
nodenv のインストール
nodenv:
https://github.com/nodenv/nodenv
anyenv で nodenv をインストール
$ anyenv install nodenv
nodenvでの node.js バージョン管理
インストール可能な node.js のバージョン確認
$ nodenv install --list
Nodenv でバージョンを指定してインストール
$ nodenv install 11.12.0
インストール後にリハッシュする
$ nodenv rehash
各プロジェクトディレクトリでのバージョン設定
各プロジェクトディレクトリに移動し .node-versions (隠しファイル)にバージョンを記述すると、nodenvがバージョンを自動で切り替えてくれる
$ cd myproject
$ nodenv local 10.6.0
グローバルの node.js を特定バージョンで有効化
$ nodenv global 11.12.0
グローバルの node.js バージョンを確認
$ nodenv global
11.12.0
現在のディレクトリの node.js バージョンを確認
$ node -v
v10.13.0
nodenv で管理されている node.js のバージョン一覧を表示
$ nodenv versions
* system => v10.13.0 (set by /Users/USER_NAME/.anyenv/envs/nodenv/version)
nodebrewで管理していた 旧 node.js をアンインストール
nodebrew uninstall [version]
.bash_profile の nodebrew 用のパスの記述を削除
export PATH=$HOME/.nodebrew/current/bin:$PATH
nodenv の設定
.bash_profile に nodenv 追記
シェルの再起動
$ echo 'eval "$(nodenv init -)"' >> ~/.bash_profile
$ exec $SHELL -l
.bash_profile の内容を確認
$ cat ~/.bash_profile
node.jsのバージョン確認
$ node -v
.bash_profileの記述を確認
$ cat ~/.bash_profile
nodenv の再ロード
$ nodenv init
nodenv を使ってインストールした Node.js のアンストール
$ nodenv uninstall 6.0.0
gulp の設定を修正
gulp
https://gulpjs.com/docs/en/getting-started/quick-start
nodenv をインストール後に、 gulp を使用しているプロジェクトのディレクトリで gulp を実行したところ、
command not found が表示されて gulp が動かなくなったので、設定を修正する
(パスが通っていないのが原因と思われるので、gulp を再インストールをせずにパスを通すだけで解決する可能性が高そう)
$ cd <myproject>
$ gulp
bash: gulp: command not found
gulp の再インストール
npmをアップデート
$ npm install -g npm
すでにインストールされているグローバルの gulp ファイルを削除しておく
(sudo なしで実行したところエラーになったので sudo をつけて再度実行)
$ sudo npm rm --global gulp
gulpをグローバルにインストールする
$ sudo npm install --global gulp
command not found が表示されたプロジェクトのディレクトリに移動し、パスを通すコマンドを実行
$ cd <myproject>
$ export PATH=$PATH:./node_modules/.bin
gulpを実行
$ gulp
.bash_profile に追記しておく
$ echo 'export PATH=$PATH:./node_modules/.bin' >> ~/.bash_profile