nvmからnodenvに変えました
デフォルトshellをfish shellに変えてから気が付いたんですが、今まで使っていたnvmはfish shellをサポートしてないということがわかりました。公式では一応代替手段はあるのですが...
その話を友人にしたらanyenvでndenv使うのオススメと言われて試しに入れてみたら、気に入ったのでそのやり方を紹介します。
公式ドキュメント以外に以下の記事を参考にさせてもらいました。
この記事で想定している人
- anyenvでndenvを使用してみようと思っている人
- fish shellを使用している人
前提
- Homebrewがinstallされている
- fish shellをデフォルトshellで使用している
anyenvとは
公式には
anyenv - All in one for **env
This is a simple wrapper for rbenv style environment managers. You don’t have to git clone or modify your shell profile for each **env anymore if you install anyenv.
とあります。
要は、anyenv使って色んな**envをinstallする時に、必要な設定(git cloneやshellの設定にパスを通すなどの変更)をする必要がなくなるよっていう便利なツールです!
**envは、anyenv install --list
で確認できます。
nvmを削除
anyenvをinstallする前に、nvmを削除します。(ありがとう!nvm!!)
nvmの設定を削除
.bash_profile または .bashrcなどのshell設定ファイルに、nvmのパスなどの設定が記述されていると思うので削除します。
~/.nvmを削除
$ rm -rf ~/.nvm
anyenvをinstall
Homebrewを使ってinstallします。手順は公式通りinstallしていきます。
$ brew install anyenv
installできたら初期化します。
$ anyenv init # Load anyenv automatically by adding # the following to ~/.config/fish/config.fish: status --is-interactive; and source (anyenv init -|psub)
~/.config/fish/config.fish
に追記します。
echo 'status --is-interactive; and source (anyenv init -|psub)' >> ~/.config/fish/config.fish
リロードします。
$ exec $SHELL -l
リロードすると以下の警告が表示されます。
Last login: Sun Oct 20 16:16:30 on ttys003 ANYENV_DEFINITION_ROOT(/Users/ユーザ名/.config/anyenv/anyenv-install) doesn't exist. You can initialize it by: > anyenv install --init Welcome to fish, the friendly interactive shell
警告に載っているコマンドを実行します。
$ anyenv install --init Manifest directory doesn't exist: /Users/[ユーザ名]/.config/anyenv/anyenv-install Do you want to checkout ? [y/N]: y Cloning https://github.com/anyenv/anyenv-install.git master to /Users/[ユーザ名]/.config/anyenv/anyenv-install... Cloning into '/Users/[ユーザ名]/.config/anyenv/anyenv-install'... remote: Enumerating objects: 48, done. remote: Total 48 (delta 0), reused 0 (delta 0), pack-reused 48 Unpacking objects: 100% (48/48), done. Completed!
OK!🎉
nodenvをinstall
$ anyenv install nodenv ... Install nodenv succeeded! Please reload your profile (exec $SHELL -l) or open a new session.
リロードします。
$ exec $SHELL -l
nodenvのinstallが終わったので、次にNode.jsをinstallします。
Node.jsをinstall
全てのバージョンを確認してみます。
$ nodenv install -l
2019/10/20日現在、最新版の12.12.0をinstallします。
$ nodenv install 12.12.0
globalで使用するnodeを設定します。
$ nodenv global 12.12.0
反映させるためリロードします。
$ exec $SHELL -l $ node -v v12.12.0
できました!!✌️
おまけ
プロジェクトでNodeのversionを固定したい場合
$ nodenv local <固定したいversion> $ exec $SHELL -l
とコマンドを実行すると.node-version
が作成されて切替ができます!(作成後はリロードしないと反映されないので注意が必要です)
以上です。