ワークスペースサポート#
Moon のワークスペース機能を使うと、1 つのリポジトリ内で 1 つのワークスペースマニフェスト(moon.work)を使って複数のモジュールを管理できます。
ワークスペースを初期化する#
次のディレクトリ構成を想定します:
repo/
mod_a/
moon.mod.json
mod_b/
moon.mod.json
repo/ でワークスペースを初期化し、メンバーを登録します:
moon work init mod_a mod_b
これにより moon.work が作成されます:
members = [
"./mod_a",
"./mod_b",
]
メンバーを追加する#
新しいモジュールを追加したら、次のコマンドで登録します:
moon work use mod_c
ワークスペースルートで作業する#
moon.work を配置した後は、ワークスペースルートで moon コマンドを実行できます:
moon check --target all
moon test --target all
moon info
moon clean
これらのコマンドは、単一モジュールのコンテキストではなくワークスペースのコンテキストで実行されます。
一部のコマンドはモジュール単位でのみ使えます(例:publish)。このようなコマンドは、対象メンバーモジュールのディレクトリで実行してください:
moon -C mod_a publish
メンバーのバージョンを同期する#
あるメンバーが別のワークスペースメンバーの古いバージョンに依存している場合(例:mod_a@0.1.0、ただしワークスペースメンバー mod_a はすでに 0.2.0)、次を実行します:
moon work sync
これにより、メンバーの moon.mod.json が更新され、ワークスペースメンバー間のバージョンがそろいます。