工作区支持#

Moon 工作区支持让你在一个仓库中通过一个工作区清单(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 文件,使工作区成员版本保持一致。