asdfから移行するときに.tool-versionsを書き換えたくない
asdfはプロジェクトで使うツールのバージョンを.tool-versionsというファイルで管理する。miseは.tool-versionsをそのまま読み込めるため、asdfからmiseへ移行する際に.tool-versionsを書き換える必要はない。
mise.tomlがなくても.tool-versionsだけで動く
.tool-versionsには、ツール名とバージョンをスペース区切りで1行ずつ記述する。
jq 1.7.1
このファイルがあるディレクトリでmise installを実行すると、mise.tomlが存在しなくてもインストールが進む。
$ mise install
mise jq@1.7.1 [1/2] install
mise jq@1.7.1 [1/2] download jq-macos-arm64
mise jq@1.7.1 [2/2] checksum jq-macos-arm64
mise jq@1.7.1 [2/2] extract jq-macos-arm64
mise jq@1.7.1 ✓ installed
$ mise current jq
1.7.1
mise config lsで確認すると、.tool-versionsも設定ファイルの1つとして扱われている。
$ mise config ls
/path/to/project/.tool-versions jq
mise.tomlと.tool-versionsが両方ある場合はmise.tomlが優先される
同じディレクトリにmise.tomlと.tool-versionsの両方があり、それぞれ異なるバージョンを指定している場合を試す。
# mise.toml
[tools]
jq = "1.6"
# .tool-versions
jq 1.7.1
この状態でmise currentを実行すると、.tool-versionsの1.7.1ではなくmise.tomlの1.6が有効になる。
$ mise current jq
1.6
mise config lsで確認すると、.tool-versionsよりmise.tomlが後(優先度の高い側)に表示される。
$ mise config ls
/path/to/project/.tool-versions jq
/path/to/project/mise.toml jq
新規にプロジェクトを始める場合、公式ドキュメントでも柔軟性の高いmise.tomlの使用が推奨されている。
.tool-versionsをmise.tomlに変換する
.tool-versionsから新たにmise.tomlを作りたい場合は、mise generate configに--tool-versionsオプションで既存ファイルを渡す。
$ mise generate config --tool-versions .tool-versions --dry-run
mise would write to mise.toml
[tools]
jq = "1.7.1"
shellcheck = "0.11.0"
--dry-runを外すと、プレビューと同じ内容がmise.tomlとして実際に書き出される。
\第一線のプログラマーの行動原理を学べる!/
