mise.tomlへのツール追加とインストールを一度に済ませたい
プロジェクトで新しいツールを使い始めたい場合、mise.tomlを直接編集してツールとバージョンを追記し、その後mise installでインストールするという手順を踏める。mise useコマンドを使うと、mise.tomlへの追記とインストールを1つのコマンドで行える。
mise use の基本
ツールを何も記述していないmise.tomlがあるディレクトリで、mise useにツール名とバージョンを指定する。
$ mise use hyperfine@1.19.0
mise hyperfine@1.19.0 [1/3] install
mise hyperfine@1.19.0 [1/3] download hyperfine-v1.19.0-x86_64-apple-darwin.tar.gz
mise hyperfine@1.19.0 [1/3] generate checksum hyperfine-v1.19.0-x86_64-apple-darwin.tar.gz
mise hyperfine@1.19.0 [2/3] extract hyperfine-v1.19.0-x86_64-apple-darwin.tar.gz
mise hyperfine@1.19.0 ✓ installed
mise /path/to/project/mise.toml tools: hyperfine@1.19.0
hyperfineのバージョン1.19.0がインストールされ、mise.tomlにも追記される。
[tools]
hyperfine = "1.19.0"
mise useはカレントディレクトリのmise.tomlを書き換える。チーム全体で使うバージョンではなく、自分の環境だけでバージョンを切り替えたい場合はmise use --globalを使う。
バージョンを省略すると最新版を使う
バージョンを省略してmise useを実行すると、そのツールの最新版がインストールされる。
$ mise use shellcheck
mise shellcheck@0.11.0 [1/3] install
mise shellcheck@0.11.0 [1/3] download shellcheck-v0.11.0.darwin.aarch64.tar.xz
mise shellcheck@0.11.0 [2/3] checksum shellcheck-v0.11.0.darwin.aarch64.tar.xz
mise shellcheck@0.11.0 [3/3] extract shellcheck-v0.11.0.darwin.aarch64.tar.xz
mise shellcheck@0.11.0 ✓ installed
mise /path/to/project/mise.toml tools: shellcheck@0.11.0
mise.tomlには解決された具体的なバージョン番号ではなく、latestという文字列がそのまま書き込まれる。
[tools]
hyperfine = "1.19.0"
shellcheck = "latest"
latestはエイリアスとして保存され、まだ条件を満たすバージョンがインストールされていない場合、その時点の最新バージョンが解決されてインストールされる。一度インストールされた後は、mise installを再実行しても新しいバージョンの有無は確認されない。より新しいバージョンに更新したい場合はmise upgradeを使う。
既存のバージョン指定を上書きする
既にツールがmise.tomlに記述されている状態でmise useを実行すると、新しいエントリが追加されるのではなく、既存の行が上書きされる。
$ mise use hyperfine@1.18.0
mise hyperfine@1.18.0 [1/3] install
mise hyperfine@1.18.0 [1/3] download hyperfine-v1.18.0-x86_64-apple-darwin.tar.gz
mise hyperfine@1.18.0 [1/3] generate checksum hyperfine-v1.18.0-x86_64-apple-darwin.tar.gz
mise hyperfine@1.18.0 [2/3] extract hyperfine-v1.18.0-x86_64-apple-darwin.tar.gz
mise hyperfine@1.18.0 ✓ installed
mise /path/to/project/mise.toml tools: hyperfine@1.18.0
[tools]
hyperfine = "1.18.0"
shellcheck = "latest"
hyperfine = "1.19.0"だった行がhyperfine = "1.18.0"に置き換わり、mise.toml内のツールは重複しない。バージョンを固定したい場合は、このように具体的なバージョン番号を指定してmise useを実行する。
mise.tomlをリポジトリで管理する
mise useで更新したmise.tomlをGitリポジトリにコミットしておくと、他のメンバーも同じバージョンのツールを使える。リポジトリをクローンしたメンバーがmise installを実行すると、mise.tomlに記述されたバージョンがそのままインストールされるため、各自の環境でバージョンを個別に指定し直す必要がない。
