Moon v2 — Workspace Configuration 是 .moon/workspace.yml 及工作区级关注点的参考文档。
用途 用于配置 Moon 工作区,包括工作区级配置文件的编写、项目发现方式、缓存与 CI 流水线设置,以及受影响检测。
workspace.yml 结构 文档给出 workspace.yml 的结构示例,包含 $schema、versionConstraint、projects、vcs、pipeline、cacheLifetime、autoCleanCache、logRunningCommand、telemetry 等字段。
v2 关键重命名 文档列出 v1 到 v2 的重命名对照:runner 改为 pipeline;vcs.manager 改为 vcs.client;vcs.syncHooks 改为 vcs.sync;constraints.enforceProjectTypeRelationships 改为 constraints.enforceLayerRelationships;.moon/toolchain.yml 改为 .moon/toolchains.yml(复数)。
项目发现 支持 Glob 模式(按目录自动发现),例如 apps/、packages/、.(根项目);也支持显式映射,例如 web: 'apps/web'、api: 'apps/api'。文档说明:项目需要 moon.yml 文件才能被识别。
工具链 .moon/toolchains.yml 用于配置语言运行时,每个工具链有各自的设置,示例包含 javascript 的 packageManager、node 的 version、bun 的 version。可使用 moon toolchain info <name> 查看任意工具链的可用设置。
缓存与 CI 缓存行为方面:具有 cache: true 且定义了 outputs 的任务会被缓存;pipeline.cacheLifetime 控制保留时间(默认 7 天);远程缓存通过 remote 块配置,使用 gRPC 或 HTTP 端点。 CI 命令包含:moon ci(在 CI 中运行受影响任务)、moon ci --include-relations(包含依赖项目)、moon run :task --affected(为受影响项目运行指定任务)、moon run project:task --force(绕过缓存)。
受影响检测 moon query changed-files 用于列出变更文件(v1 中为 touched-files);moon run :test --affected 仅对受影响项目运行测试。文档说明使用 --include-relations 可包含依赖受影响项目的项目,并指出 v2 中默认不再包含关联关系。
CLI 速查 文档指出 v2 中所有标志使用 kebab-case(而非 camelCase)。命令包括:moon check(校验工作区配置)、moon project list(列出所有项目)、moon project <name>(显示项目详情)、moon run <project>:<task>(运行任务)、moon run :task(跨所有项目运行任务)、moon task <project>:<task>(显示任务详情)、moon toolchain info <name>(显示工具链设置)。
限制 资料未提供价格、收费、平台支持范围及使用效果等信息。