【むーん】

Moon(モノレポツール) とは?

最終更新:
💡 タスクの順番と再利用を、月の案内係におまかせ

複数のプロジェクトを含むリポジトリなどで、ビルド・テストといったタスクを管理するツール。依存関係に沿った実行順序、独立した処理の並列実行、結果のキャッシュを組み合わせ、開発やCIの作業を整える。

📌 このページのポイント
moon:依存する作業は順番にライブラリビルドアプリビルドlint独立しているなら並列に実行先に完了順番はタスクの依存関係で決まるよ
矢印は先に完了する必要があるタスクの実行順序。この例のlintはビルドに依存しない。実際の依存関係は設定に合わせる。
ひよこ ひよこ
moonは、何を手伝ってくれるの?
ペンギン先生 ペンギン先生
ビルドやテストなどの作業をまとめて管理するよ。複数のプロジェクトを一つのリポジトリに置くモノレポなどで、どのタスクを実行し、何を先に済ませるかを整える道具なんだ。
ひよこ ひよこ
全部のタスクを同時に走らせるの?
ペンギン先生 ペンギン先生
先に終わる必要があるタスクは、依存関係として指定するよ。図ではライブラリをビルドしてからアプリをビルドする。一方、それらに依存しないlintは並列に進められる。順番はタスクの設定に合わせるんだ。
ひよこ ひよこ
キャッシュは、前の結果をいつでも使うの?
ペンギン先生 ペンギン先生
入力や設定などを基に、前の結果を使えるか判断するよ。入力にはファイルや環境変数などを指定できる。生成物を復元したいタスクにはoutputsも設定しよう。必要な入力を漏らすと、変更を正しく判定できないことがあるね。
ひよこ ひよこ
JavaScript以外にも使える?
ペンギン先生 ペンギン先生
シェルで実行できるコマンドを扱い、複数言語に対応しているよ。ただし言語ごとに統合機能の範囲は違う。タスクはプロジェクトのmoon設定や共有設定で定義でき、moon run プロジェクト名:タスク名の形で実行するんだ。
ひよこ ひよこ
Rust製なら、他のツールより必ず速い?
ペンギン先生 ペンギン先生
実装言語だけでは決まらないよ。実際の処理、依存関係、キャッシュの効き方などで変わる。公式資料の対応環境や、使う版の設定方法を確認し、自分たちのビルドで試すのがよいね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「moon」って出てきたら「複数プロジェクトのタスクの順番と再利用を管理するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「moon」 = プロジェクト・タスク管理ツールの名称
💬 月を意味する英語と同じ名前のツール。ここでは複数プロジェクトの開発作業を整えるmoonを扱うよ。

参考資料

← 用語集にもどる