以前、 rbenv から mise-en-place (mise) に乗り換えた記事を書きました。
Apple Silicon + macOS Sequoia にて、 mise で Ruby 3.0 系をビルドしたら maybe_unused のBUILD FAILEDになったため、対応した - メモ的な思考的な
その後も、プログラミング言語や開発ツールのバージョン管理として、 mise を引き続き使っています。
Home | mise-en-place
mise では mise.toml という設定ファイルにて、複数のプログラミング言語のバージョンを管理できます。
Configuration | mise-en-place
一方、リポジトリによっては mise.toml ではなく、 .ruby-version や .node-version 、 .python-version などのファイルでバージョンを管理しています。
例えば、次の記事にあるように、Rubyでは .ruby-version が幅広く活用されています。
.ruby-version の歴史とその活用法 - pockestrap
また、GitHub ActionsでNode.jsをセットアップする actions/setup-node では、 mise.toml を読むことができるようにするプルリクはあるもののマージされていません。そのため、まだ .node-version が必要です。
feat: add support for mise.toml file by gperdomor · Pull Request #1421 · actions/setup-node
そこで、 mise.toml の中でバージョンを定義するのではなく、miseが .ruby-version などによりバージョンを決められないかを調べてみたことから、メモを残します。
目次
環境
- mac
- mise 2026.2.2
結論:idiomatic_version_file_enable_tools を設定する
まさにその用途の設定が、miseの公式ドキュメントに記載されていました。
idiomatic_version_file_enable_tools | Settings | mise-en-place
mise.toml に
[settings] idiomatic_version_file_enable_tools = ["ruby", "node"]
と書くことで、RubyとNode.jsは idiomatic version file である .ruby-version や .node-version を参照してバージョンが決まります。
Idiomatic version files | Configuration | mise-en-place
実際にどんなふうになるかを試してみます。
動作確認環境
空っぽのディレクトリ mise_idiomatic_version_file_enable_tools_example を用意します。
% ls -a . ..
また、mise ls では
- Node.js
- 複数インストールされており、グローバルの
config.tomlによって、22.14.0 が指定されている
- 複数インストールされており、グローバルの
- Ruby
- インストールされているが、何も指定されていない
となっています。
% mise ls Tool Version Source Requested node 22.14.0 ~/.config/mise/config.toml 22.14.0 node 24.12.0 ruby 3.4.8
グローバル設定がない状態で idiomatic version file を参照する
今回の場合はRubyが該当します。
まずは、idiomatic version file である .ruby-version へ、Ruby 3.4.8が使えるよう定義を追加・作成します。
% echo 3.4.8 > .ruby-version % ls -a . .. .ruby-version
mise ls で確認したところ、.ruby-version を作成しただけでは、miseでは無効のままでした。
% mise ls Tool Version Source Requested node 22.14.0 ~/.config/mise/config.toml 22.14.0 node 24.12.0 ruby 3.4.8
この状態で idiomatic_version_file_enable_tools 設定を追加します。
今回はグローバルではなく、このリポジトリ内に限定したいため、 --local フラグを追加し、リポジトリ内に mise.toml ファイルを作成します。
Global Flags | mise settings | mise-en-place
すると、初回実行のためにエラーが出ました。
% mise settings add --local idiomatic_version_file_enable_tools ruby mise ERROR error parsing config file: /path/to/mise_idiomatic_version_file_enable_tools_example/mise.toml mise ERROR Config files in /path/to/mise_idiomatic_version_file_enable_tools_example/mise.toml are not trusted. Trust them with `mise trust`. See https://mise.jdx.dev/cli/trust.html for more information. mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information
今回は設定ファイルを信頼して良いため、メッセージ通り mise trust を実行します。
mise trust | mise-en-place
% mise trust mise trusted /path/to/mise_idiomatic_version_file_enable_tools_example
再度 mise settings add を実行した後にファイルを確認すると、新しく mise.toml ができていました。
% mise settings add --local idiomatic_version_file_enable_tools ruby % ls -a . .. .ruby-version mise.toml
mise.toml を見ると、 idiomatic_version_file_enable_tools が設定されていました。
% cat mise.toml [settings] idiomatic_version_file_enable_tools = ["ruby"]
mise ls で確認すると、 .ruby-version に書かれたRubyが使われるようになりました。
% mise ls Tool Version Source Requested node 22.14.0 ~/.config/mise/config.toml 22.14.0 node 24.12.0 ruby 3.4.8 /path/to/mise_idiomatic_version_file_enable_tools_example/.ruby-version 3.4.8
バージョンも切り替わっています。
% ruby --version ruby 3.4.8 (2025-12-17 revision 995b59f666) +PRISM [arm64-darwin24]
グローバル設定がある状態で idiomatic version file を参照する
次はグローバル設定のあるNode.jsで動作を見ていきます。
最初にNode.jsのバージョンを確認すると、グローバル設定されている v22.14.0 が表示されます。
% node --version v22.14.0
次に、リポジトリ内のバージョンとして 24.12.0 が使えるよう、 .node-version ファイルを作成します。
% echo 24.12.0 > .node-version % ls -a . .. .node-version .ruby-version mise.toml
中身を確認します。
% cat .node-version 24.12.0
mise ls で確認すると、まだグローバル設定が有効になっています。
% mise ls Tool Version Source Requested node 22.14.0 ~/.config/mise/config.toml 22.14.0 node 24.12.0 ruby 3.4.8 /path/to/mise_idiomatic_version_file_enable_tools_example/.ruby-version 3.4.8
あらためてNode.jsのバージョンを確認しますが、切り替わっていません。
% node --version v22.14.0
Rubyの時と同じように、Node.jsに対しても --local フラグ付きで idiomatic_version_file_enable_tools を設定します。
% mise settings add --local idiomatic_version_file_enable_tools node
mise.toml ファイルを確認すると、 node が増えています。
% cat mise.toml [settings] idiomatic_version_file_enable_tools = ["ruby", "node"]
mise ls すると、Node.jsのバージョンが切り替わっていました。
% mise ls Tool Version Source Requested node 22.14.0 node 24.12.0 /path/to/mise_idiomatic_version_file_enable_tools_example/.node-version 24.12.0 ruby 3.4.8 /path/to/mise_idiomatic_version_file_enable_tools_example/.ruby-version 3.4.8
実際のバージョンも 24.12.0 へと切り替わりました。
% node --version v24.12.0
以上で、miseが .ruby-version や .node-version を参照するよう設定できました。