Mise: 開発ツール、環境変数、タスクランナー
(github.com/jdx)miseとは?
- miseはasdf、nvm、pyenvと同様に、node、python、cmake、terraformなどさまざまな開発ツールを管理するツール
- direnvと同様に、プロジェクトディレクトリごとの環境変数を管理
- makeと同様に、プロジェクトのビルドやテストに使われるタスクを管理
30秒デモ
- miseを使ってnodeのさまざまなバージョンをインストールする方法を紹介
which nodeコマンドを実行すると実際のパスが返され、shimではない
クイックスタート
- miseのインストール方法:
$ curl https://mise.run | sh$ ~/.local/bin/mise --versionコマンドでインストールされたバージョンを確認可能
- 特定バージョンのインストール:
$ curl https://mise.run | MISE_VERSION=v2024.5.16 sh$ ~/.local/bin/mise --versionコマンドでインストールされたバージョンを確認可能
- シェルにmiseを組み込む:
- bash:
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc - zsh:
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc - fish:
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
- bash:
- ランタイムのインストールとグローバルデフォルトの設定:
$ mise use --global node@20$ node -vコマンドでバージョンを確認可能
全文書
- mise.jdx.devで全文書を確認可能
1件のコメント
Hacker Newsの意見
miseを使い始めたとき、asdfの欠点を補いつつ、高速で侵襲性の低いシェル設定を提供してくれる点に満足したJS、Ruby、Python、Java SDK の管理のために
Miseへ移行し、満足しているチームのツールチェーンを統一するために
miseを使っており、Docker や Nix は使っていないmiseのユーザー体験は素晴らしい何でもやろうとすると、結局は何一つきちんとできない可能性が高い
開発者ではないので、こうしたツールのユースケースを理解できない
asdfを使ってモノレポ内のすべてのプログラムのバージョンを管理しており、UX はいまひとつだが信頼性はあるasdfさえインストールすれば管理でき、すべてが自動化され、バージョンも固定されているmiseを使って Go のバージョンを管理しており、やや分かりにくくドキュメントも不足しているが、悪くないasdfや似たツールを使ったことがないため、学習コストがあるかもしれないmiseをasdfの代替として使っており、満足している1年以上使っているが、生活を楽にしてくれたシンプルなツールだ
miseを GitHub Actions のワークフローに統合する方法を考えているmiseリポジトリのワークフローファイルを見ると、いくつかのmiseステップを追加しているようだプロジェクトの Readme を読んだ後でも、「なぜ?」という疑問が残った