ワークスペースサポート#

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 が更新され、ワークスペースメンバー間のバージョンがそろいます。