開発環境マネージャーmiseを最速で使えるようにする
環境として、Shell周りを特にいじっていないMacOSを想定しています。
細かい説明は省いているので、気になる方は公式のドキュメントを読んでください。
Getting Started
installation
curl https://mise.run | sh
~/.local/bin/mise --version
homebrewを使っているなら、その方が楽です。
brew install mise
Activation
~/.zshrc
の部分はShellの種類や設定ファイルの場所に応じて適宜読み替えてください。
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
設定ファイル
カレントディレクトリの設定は ./.mise.toml
に記載されます。
グローバルのコンフィグは ~/.config/mise/config.toml
に記載されます。
[tools]
node = "22.9"
ruff = "latest"
python = "3.11"
[settings]
experimental = true
主に使うコマンド
開発環境のインストール
カレントディレクトリ直下に .mise.toml
がある場合、それを参照してツールのインストール・有効化を行います。
.mise.toml
が含まれるリポジトリをクローンしたときなどに使います。
mise trust
mise install
ツールの管理
使用するツール・バージョンの指定
指定したツールがインストールされていない場合、自動でインストールされます。
また、バージョンを指定しない場合は最新バージョンが選択されます。
mise use node@20
使用するツール・バージョンの指定 (グローバル)
ディレクトリにかかわらず使用したいツールには -g
オプションを付けて指定します。
mise use -g python@3.11
インストールできるバージョン一覧の取得
使いたいツールがmiseで管理できるかどうか確認したいときにも使用できます。
mise ls-remote node
実行例
$ mise ls-remote node@20
20.0.0
20.1.0
20.2.0
20.3.0
20.3.1
20.4.0
20.5.0
20.5.1
20.6.0
20.6.1
20.7.0
20.8.0
20.8.1
20.9.0
20.10.0
20.11.0
20.11.1
20.12.0
20.12.1
20.12.2
20.13.0
20.13.1
20.14.0
20.15.0
20.15.1
20.16.0
20.17.0
20.18.0
現在有効になっているツール一覧の取得
mise current
実行例
$ mise current
node 21.4.0
python 3.13.0
ruff 0.6.9
ripgrep 14.1.1
pipx 1.6.0
rust 1.82.0
uv 0.4.25
Task
.mise.toml
に [tasks.{taskname}]
を追加します。
[tasks.initDep]
description = "initialize dependencies"
run = [
"rm -rf node_modules",
"yarn"
]
alias = "i"
mise run {taskname}
or mise run {alias}
で実行できます。
mise run initDep
mise run i
最後に
miseを使う上で最低限必要になるコマンド・知識をまとめました。
miseはasdfのプラグインをそのまま使えるため、多くのツールを管理することができます。Rust製なので動作も軽快で、開発も頻繁に行われており、既存の**env系ツールを置き換えるのに十分な可能性を秘めています。
さらに、今回の説明には入れていませんが、環境変数の指定やファイルの更新の検知によるタスク実行など、パッケージマネージャーの域を超えた多くの機能が提供されています (そもそもmiseは The front-end to your dev env と銘打って開発されており、パッケージ管理はmiseの機能の一要素に過ぎません)。
バージョン管理だけでなく、direnv, makeなどの管理に消耗している場合も是非miseへの乗り換えを検討してみてはいかがでしょうか。
Discussion