SuperAPI AI 工具集

moonrepo-project-config

通用与其它

查看项目

更新于 10-16 03:49

技能介绍

用途:为 Moon v2 的 moon.yml 项目配置文件提供参考,帮助创建或修改项目配置、添加任务、定义文件组以及配置任务选项。

主要能力:

  1. 项目元数据。$schema 为 'https://moonrepo.dev/schemas/project.json',可配置 layer(application | library | tool | automation | configuration | scaffolding)、language(typescript | javascript | php | python | rust | go | bash)、stack(frontend | backend | systems | infrastructure | data)。v2 关键变更:type: 改名为 layer:。
  2. 文件组。用 fileGroups 定义命名文件模式集合,任务通过 @group(name) 引用,例如 sources 包含 'src//*.ts' 并排除 '!src//*.test.ts',configs 包含 package.json、tsconfig.json。任务 inputs 中应使用 @group(sources),而非裸 sources 或 @globs()。
  3. 任务。command: 用于单个可执行文件、无 shell 特性,支持继承合并;script: 用于管道、重定向、链式操作(&&、||、;),不支持继承合并。任务字段包括 command/script、inputs、outputs、deps('project:task' 或 '~:task' 表示同项目)、env、options、preset(server 长运行或 utility 交互且不缓存)。
  4. 常用选项。cache 默认 true;runInCI 默认 affected,可选 always、affected、false、only、skip;persistent 默认 false;shell 默认 true;retryCount 默认 0;outputStyle 可选 buffer、buffer-only-failure、stream、hash、none;runFromWorkspaceRoot 默认 false。

使用方式:在项目 moon.yml 中按上述字段编写,任务 inputs 引用文件组,可缓存任务需定义 outputs。

常见陷阱:用 layer: application 而非 type: application;含 shell 特性时用 script: 而非 command:;inputs 用 @group(sources);可缓存任务缺少 outputs 会使缓存失效;平台改用 toolchains 字段或省略(自动检测),而非 platform: node。

限制:资料仅覆盖上述配置项,未提供版本兼容细节、完整字段清单、示例项目结构或错误处理说明。