用途:从指定项目目录(默认为当前工作目录)逐步收集 Module Federation 相关信息,汇总输出 MFContext 结构化摘要,为后续 MF 诊断技能提供数据基础。
主要能力与采集内容: 一、基础信息。读取 {projectRoot}/package.json,提取项目 name,合并 dependencies 与 devDependencies 为完整依赖映射;按顺序检测包管理器:存在 pnpm-lock.yaml 判定为 pnpm,存在 yarn.lock 判定为 yarn,存在 package-lock.json 判定为 npm。 二、打包器与 MF 配置。按优先级查找配置文件(.ts/.mts 优先于 .js/.mjs/.cjs):module-federation.config、rsbuild.config、rspack.config、modern.config、next.config、webpack.config。读取首个匹配文件,提取 remotes、exposes、shared 字段,并根据文件名判断打包器(rspack / rsbuild / webpack)。 三、判定 MF 角色。同时有 remotes 和 exposes 为 host+remote;仅有 remotes 为 host;仅有 exposes 为 remote;都没有为 unknown。 四、最近错误事件(可选)。检查 .mf/diagnostics/latest.json 是否存在,存在则读取内容。 五、构建产物(可选)。检查 dist/mf-manifest.json 与 dist/mf-stats.json 是否存在,存在则读取。
输出结构:聚合上述信息,输出含 project(name、packageManager、mfRole)、bundler(name、configFile)、mfConfig(remotes、exposes、shared)、dependencies(已安装的 MF 相关包及版本)、latestErrorEvent(如存在)、buildArtifacts(如存在)的 MFContext 摘要。
使用方式:从 $ARGUMENTS 获取目标路径(为空时默认当前工作目录),按上述步骤逐步采集后输出汇总。进一步诊断时,基于该上下文调用相应的诊断技能。
限制:错误事件与构建产物为可选步骤,文件不存在时相应字段不输出;具体命令、价格与平台支持等细节暂未提供。