miseで開発ツールを一元管理するとスッキリした話
発端
システム開発をしていると、言語ごとのバージョン管理が地味に手間だと感じることがあります。言語によって使うツールが異なるため、「このプロジェクトでは何でバージョンを管理しているんだっけ?」と環境構築の段階でつまずくこともありました。
ランタイム環境って何を使ってますか?
複数のプログラミング言語を使っていると、各言語のバージョンをそれぞれ別のツールで管理することになります。
- java:sdkman
- python:uv
- javascript:npm
- go:go標準 ...etc
筆者の環境
- OS: macOS Tahoe 26.4.1 arm64
- Host: MacBook Pro (14-inch, 2023)
- CPU: Apple M2 Pro
- Memory: 16.00 GiB
miseとは
- 概要: Rust製の高速な開発環境セットアップ・ランタイム管理ツール。
- 主な特徴:
- 高速: Rustで書かれており、シェルの起動やコマンドの切り替えが高速。
- 互換性: asdfのプラグイン資産をそのまま利用可能。
- 多機能: ランタイム管理だけでなく、タスクランナー(makeやnpm scriptsの代替)や環境変数の管理機能も備えている。
- シンプル: .mise.toml(または.tool-versions)による直感的な管理。
それmiseで一元管理してみない?
インストール方法
$ brew install miseバージョン確認
$ mise --version指定したプログラミング言語のインストール
$ mise install {プログラミング言語@バージョン}
// 以下例
$ mise install node@22インストールした言語の確認
$ mise lsインストールした言語をグローバルで使用する
$ mise use -g nodeインストールした言語をプロジェクトで使用する(mise.tomlという設定ファイルが自動で作成される)
$ mise use node