🗂

開発環境マネージャーmiseを最速で使えるようにする

2024/10/29に公開

環境として、Shell周りを特にいじっていないMacOSを想定しています。
細かい説明は省いているので、気になる方は公式のドキュメントを読んでください。
https://mise.jdx.dev/

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