ランタイム管理ツール mise

晴れ

2024.08.02

109

はじめまして、晴れです。

今回はトラブルから開発環境の作り直しを行ったので、今まで使ってきた環境から変更した中でお気に入りになったツールを紹介します。

mise

ランタイム管理ツールをなぜ(また)導入したのか?

自機の開発環境作り直しにともない、ランタイムバージョン管理ツールをasdfからmiseに乗り換えることにしました。

Dockerでのランタイム切り替えが主流になりつつあるようですが、手元で手軽にコードを書いて動かしてみたいのでまだまだランタイム管理ツールにも利点はあると思います。


これまでツール利用は**envanyenvasdfとそれぞれ変遷してきたのですが、今回miseを選んだ理由は以下になります。

  1. Rust言語実装のため、高速実行が期待できる
  2. asdf互換


使用してみて2番の恩恵を実感しました。

公式でCorePluginsとして利用可能な言語は限られているのですが、asdfの資産が利用可能なのでコア以外の言語も管理できるようになります。

実際asdf-luaをインストールしてみたところ問題ありませんでした。


Plugins

実際にCorePluginsを一覧表示した結果

❯ mise plugins ls --core
bun
deno
erlang
go
java
node
python


インストール

公式ドキュメントにあるように、自環境に合わせてインストールを行ってください。

miseはRustで実装されたツールですので、Rustのビルド&パッケージマネージャーであるcargoを利用するのが手軽で良いと思います。


Getting Started

cargo install mise

使い方

30Second Demoを一度視聴してください。おおよその動作が掴めます。

管理コマンドは個人比でasdfよりもわかりやすいですし、コマンド数も少なめなところが気に入っています。


インストールしたいランタイムの確認をして、

mise plugin ls-remote  #-> 利用可能なランタイム一覧表示
mise ls-remote nodejs  #-> 目的の言語のバージョン一覧表示


インストール。

メジャーまたはマイナーバージョンを指定しない場合はlatestバージョンを優先してインストールされます。

mise install node@20  #-> ver.20の最新マイナーバージョンがインストールされる


グローバルまたはワーキングディレクトリにインストールしたバージョンを指定したい場合は以下のように。

$XDG_CONFIG_HOME/mise/config.tomlまたは、ワーキングディレクトリ直下に作成される.mise.tomlに設定した内容は追記管理されます。

mise use -g node@20  #-> グローバルでnode.js ver.20 を使用
mise use node@20     #-> ワーキングディレクトリでnode.js ver.20 を使用


またはmise installを行わずに、mise useだけでランタイムのインストールと設定まで完了できます。偉い。

これができるのでお気に入りポイント加算しました。

アンインストール

ランタイムが不要な場合は削除しましょう。

config.tomlまたは.mise.tomlは削除されませんので、適時修正してください。

mise uninstall node@20

変更してみた感想

今のところmiseに変更して良かったという感想しかありません。互換性の恩恵と少ないコマンドで導入し易いですし、管理ファイルもdirenvの使用感と変わらないことに助かっています。

IDEサポートなど他にも機能があるので調べながらさらに使い込んでいきたいです。


ぜひ公式ドキュメントを読んで導入検討してみてください。おすすめします。

この記事をシェアする