miseを使ってみる

ランタイムのバージョン管理ツールの遍歴と、最近試してみたmiseについて書いてみる。

これまでのバージョン管理ツール遍歴

ndenv / nodenv時代

最初に使ったのはndenvで、その次がnodenvだった。この辺りは昔過ぎて具体的にどんな課題があったかは忘れてしまった。

anyenv時代

その後、anyenvを使い始めた。複数のランタイムバージョンを扱えるので、とても便利だった。

anyenv-updateをすれば*env系ツール自体のバージョンも一括で全て更新できるので、最新のランタイムバージョンをすぐに使えるのが良かった。ただし、anyenv updateをし忘れていると「そんなバージョンはない」と言われるのが不便だった。

また、*envごとに使い方が微妙に違って、コマンドをすぐ忘れてしまうのが気になっていた(特にtfenv)。

asdf時代

そして、asdfを知った。これまでの.node-versionのようなファイルもそのまま使うことができて、移行が楽そうだったので使い始めた。

.tool-versionsが使えるので、複数の言語を使うプロジェクトでは普通に便利だった。しばらくはそれほど不満なく使っていた。

miseを試してみた

最近、asdfのサブコマンドが変わって覚え直すのがちょっと面倒だなぁと思った時に、miseというツールを知った。

asdfと比べてそれほど大きな違いがあるかと言うとそうでもなさそうだったが、コマンドを覚え直すついでに移行してみることにした。

まだ全ての機能を試したわけではないが、使ってみると、グローバルにmise.tomlを設定したりローカルにmise.tomlを設定したりするのが地味に便利な気がした(asdfに似たようなものがあるかもしれないが、存在に気づいていない)。

Node.jsやGo、Rustのツールをグローバルにインストールして使うことが多いが、そういう時にグローバルのmise.tomlにそれらのツールのバージョンを書いておくと、いい感じにグローバルで使えるようになる。

今後試してみたい機能

他にも、aliasestasksなど便利そうな機能があるので、機会があったら試してみたい。