煩雑な環境設定に終止符!プロジェクトごとのツール/環境変数/タスク管理を mise に一本化
あなた、ソフトウェアエンジニアさんなのね。それなら、この「mise(ミーズ)」ちゃん、あなたの開発ライフをぐーんと楽にしてくれる、まさに「デベロップメント・エンヴァイロメントのフロントエンド」って感じの、気の利く子なのよ!
フランス語で「mise-en-place(ミーズ・アン・プラス)」、つまり「準備を整える」って意味が名前の由来なの。料理人が調理前に食材や道具を完璧に準備するように、あなたの開発環境をいつでもバッチリにしてくれる、万能のホステスさんみたいなものよ!
このmiseちゃん、ね、主な機能は3つ。これまでの面倒くさい手間を、一手に引き受けてくれるのよ!
何が便利? プロジェクトごとに使う Node.js、Python、Go、Terraform みたいな言語やツールのバージョンが違うことって、よくあるでしょ?それを、以前は asdf、nvm、pyenv なんてツールを別々に使って管理してたけど、もうそんな面倒は終わり! miseちゃんは、これ一つで全部お任せ!プロジェクトのディレクトリに入るだけで、必要なバージョンに自動で切り替えてくれるの。まるで、私がお客様の好みに合わせてメイクをサッと変えるみたいにね!
何が便利?
プロジェクトごとに設定が必要な APIキー や データベース接続情報 なんかの環境変数(AWS_ACCESS_KEY_ID とかね)。今までは direnv とかを使ってたかもしれないけど、miseちゃんが統合してくれるわ。
プロジェクトディレクトリに入ると同時に必要な環境変数をセットして、出ると自動で解除。これで、「設定ミスで本番環境に影響が…」なんて心配も減るわよ。
何が便利?
ビルド、テスト、リンティング、サーバー起動など、プロジェクトでよく使う処理をまとめて実行したいとき、make や npm scripts を使ってたでしょ?
miseちゃんは、それも引き受けて、mise run build なんて簡単に実行できるようにしてくれるの。しかも、環境変数やツールのバージョンが整った状態で実行してくれるから、もう設定に悩まなくて済むわ。みんなで同じタスクを共有できて、開発の統一感もバッチリよ!
じゃあ、早速miseちゃんをあなたのPCに迎え入れる方法を教えるわね。
まずはmiseちゃんをインストールして、シェルに組み込むのよ。
インストール(macOS/Linuxの場合)
curl https://mise.run | sh
(他の環境や、Homebrewを使いたい場合は、公式ドキュメントを見てちょうだいね。)
シェルへのフック(zshの場合)
シェルの設定ファイル(例
~/.zshrc)にこのおまじないを書き加えてね。
eval "$(mise activate zsh)"
設定ファイルを再読み込みしたら、準備完了よ!
miseちゃんの魔法の箱は、プロジェクトルートに置く設定ファイル mise.toml よ。
例えば、Node.js v20 と Python 3.11 を使って、かつ AWS_REGION という環境変数を使いたいプロジェクトがあったとするわね。
mise.toml の例
# 開発ツール(Dev Tools)のバージョン指定
[tools]
nodejs = "20" # 最新のv20系を使うわ
python = "3.11" # v3.11系を使うわ
# 環境変数(Env Vars)の定義
[env]
AWS_REGION = "ap-northeast-1" # 東京リージョンにしておくわね
DATABASE_URL = "postgres://user:pass@localhost:5432/mydb"
# タスクランナー(Tasks)の定義
[tasks.test]
description = "すべてのテストを実行"
run = "npm run test" # Node.jsの環境で npm run test が実行されるわ
[tasks.start]
description = "開発サーバーを起動"
run = "node index.js"
プロジェクトディレクトリでこうするだけ!
ツールをインストール(初回のみ)
mise install
(mise.toml に書かれたバージョンのNode.jsとPythonを自動でインストールしてくれるわ。)
実行!
# Node.jsのバージョンを確認
node -v
# v20.x.x が表示されるはずよ
# 環境変数を確認
echo $AWS_REGION
# ap-northeast-1 が表示されるはずよ
# タスクを実行
mise run test
# "すべてのテストを実行" タスクが動くわ
ね、簡単でしょ?これでもう、あなたの開発環境はいつもミーズ・アン・プラスよ!もし何かトラブルがあったらいつでも相談に来てね、私があの手この手で解決してあげるから!