🏜️
miseでパッケージマネージャの迷宮を渡り歩く
今年asdfからmiseに乗り換えて、速度もそうですが使い勝手に良さを感じました。
globalで管理したいpackage/runtimeの定義は以下のように管理します。
~/.config/mise/config.toml
[tools]
bun = "latest"
deno = "latest"
node = "22"
python = "3.13"
ディレクトリ(Repository)の単位で閉じたい場合は以下のような mise.toml を中に作ります。
mise.toml
[tools]
node = "22"
pnpm = "9.15"
mise.toml をcommitしてgitの管理対象にすることで、miseを使っている開発メンバーは mise install でruntime/package managerのバージョンをサクッと揃えることができます。いいね。
mise以外で管理されている場合(package.jsonにpackageManager (corepack)やvoltaのようなフィールドがある場合)でも...
npm
mise.toml
[tools]
node = {NODE_VERSION}
pnpm
mise.toml
[tools]
node = {NODE_VERSION}
pnpm = {PNPM_VERSION}
yarn v4 (corepack)
mise.toml
[tools]
node = {NODE_VERSION}
"npm:corepack" = "latest"
これでなんとかなったりする。
mise.tomlをcommitしないならConfig Environmentsを参考に mise.local.toml mise.{MISE_ENV}.local.toml のようなファイルを作り、gitignoreにファイル名だけ書いておけば良い。
.gitignore
+ mise.local.toml
+ mise.*.local.toml
~/.config/git/ignore
+ mise.local.toml
+ mise.*.local.toml
コマンド周りはasdfっぽく叩けて一部asdf-pluginにも対応しており、元々asdfユーザだった自分が求めていたものと感じる。
MakefileのようなものをTasksで代替する日も近そうな雰囲気。今後もバリバリ使っていきたいツールです。
Discussion