プロジェクトを問わず使うツールのバージョンを設定したい
mise useは、実行したディレクトリのmise.tomlにツールとバージョンを書き込む。プロジェクトごとにバージョンを揃えるにはこれで十分だが、fzfやripgrepのように特定のプロジェクトに紐付かず、どこでも同じバージョンを使いたいツールもある。mise use --globalを使うと、ディレクトリに関係なく共通で使うツールのバージョンを設定できる。
mise use –global の基本
--globalオプションを付けてmise useを実行する。
$ mise use --global fzf@0.55.0
mise fzf@0.55.0 [1/3] install
mise fzf@0.55.0 [1/3] download fzf-0.55.0-darwin_arm64.tar.gz
mise fzf@0.55.0 [2/3] checksum fzf-0.55.0-darwin_arm64.tar.gz
mise fzf@0.55.0 [3/3] extract fzf-0.55.0-darwin_arm64.tar.gz
mise fzf@0.55.0 ✓ installed
mise ~/.config/mise/config.toml tools: fzf@0.55.0
書き込み先はカレントディレクトリのmise.tomlではなく、~/.config/mise/config.tomlというグローバル設定ファイルになる。
[tools]
fzf = "0.55.0"
このファイルに書かれたツールは、mise.tomlを持たないディレクトリも含め、どのディレクトリで実行しても同じバージョンが有効になる。
ローカルのmise.tomlがある場合はそちらが優先される
プロジェクトのmise.tomlに同じツールが書かれている場合、グローバル設定よりローカルのmise.tomlの指定が優先される。
$ mise use fzf@0.54.0
mise fzf@0.54.0 [1/3] install
mise fzf@0.54.0 [1/3] download fzf-0.54.0-darwin_arm64.zip
mise fzf@0.54.0 [2/3] checksum fzf-0.54.0-darwin_arm64.zip
mise fzf@0.54.0 [3/3] extract fzf-0.54.0-darwin_arm64.zip
mise fzf@0.54.0 ✓ installed
mise /path/to/project/mise.toml tools: fzf@0.54.0
グローバル設定ではfzfは0.55.0だが、このディレクトリでmise currentを実行すると、ローカルのmise.tomlに書かれた0.54.0が優先される。
$ mise current fzf
0.54.0
mise doctorで読み込まれている設定ファイルを確認すると、グローバル設定とローカルのmise.tomlの両方が読み込まれ、後から評価されるローカル側の指定が優先されている。
config_files:
~/.config/mise/config.toml
/path/to/project/mise.toml
用途
mise use --globalは、プロジェクトのチームメンバー間でバージョンを揃える必要のない、個人の作業環境で使うCLIツールのバージョン管理に向いている。プロジェクト間で共有したいツールのバージョンはプロジェクトのmise.tomlに書き、個人の好みで選びたいツールはmise use --globalでグローバル設定に書く、という使い分けができる。
