これまでnode環境はnvmで、他はpyenvやgoenvを利用していたのですが、nvmが .node-version
ファイルに対応していませんでした。(.nvmrc
で指定することはできませす。)
そこでいい加減nodenvに移行したのですが、せっかくなのでどうせなら新しい物をを使おうと思いasdfに移行しました。
anyenvの問題点ははただの「**env
をインストールソフト」であり、nodenvやpyenvなどそれぞれの利用法を知っている必要があります。
asdfは実行環境ごとのプラグインを介して直接バージョンを管理するため
どの実行環境でも同様に扱うことができます。
ある日突然「PHPの5.3のバイナリが欲しい…」となっても使い方を迷う必要がありません。
例としてnodejsであれば
asdf install nodejs 16.1.0
Pythonであれば
asdf install python 3.9.5
でインストールが可能です。
また、nodejsであれば lts-fermium
のようにタグで指定することも可能です。
自分はグローバルにインストールするものは「一番新しいLTSの最新バージョン」を利用することにしているので、非常に便利です。(nodenvではこれができませんでした。)
また、.asdfrc
に legacy_version_file = yes
を追加することで .node-version
なども自動的に読み込み、ディレクトリによって自動的にバージョンを切り替えることもできます。
注意点としては、ビルドする関係上、使用するプラグイン(実行環境)によって依存するライブラリがあるため、そのインストールは別途必要になります。
anyenvより圧倒的に使いやすいので、anyenvやその他のバージョン管理ツールを利用している場合は、asdfへの移行を強くおすすめします。