三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

AI 时代的微前端开发:esmx validate 与 llms.md 驱动的 Agent 工作流

AI 时代的微前端开发:esmx validate 与 llms.md 驱动的 Agent 工作流

AI 时代的微前端开发:esmx validate 与 llms.md 驱动的 Agent 工作流

【免费下载链接】genesisNext-generation micro-frontend framework based on ESM, sandbox-free with zero runtime overhead, supporting multi-framework hybrid development项目地址: https://gitcode.com/gh_mirrors/genesis8/genesis

随着 AI 编程助手(Claude、Cursor、Copilot)成为开发者的日常搭档,微前端开发也进入了一个新阶段:Agent 不再只是"写代码",而是直接参与架构声明与依赖接线的编写。esmx validate 与 llms.md 正是为这个 AI 时代设计的组合拳——前者把模块协议的校验变成一条免构建的 CLI 命令,后者把整个框架的规则压缩成一页 AI 能读懂的契约。本文将以新手友好的方式,讲清楚这套AI Agent 微前端工作流如何运作、为什么值得用,以及三步上手的方法。

为什么 AI 时代需要新的微前端工作流

传统微前端框架(如 qiankun、single-spa、Module Federation)依赖沙箱、生命周期钩子和手写的依赖接线。这些配置散落在代码与配置文件里,人类读起来都费劲,AI 助手更是容易"想当然"地生成错误写法——要么编造不存在的 API,要么把接线写错导致运行时才报错。

Esmx 走了一条相反的路:基于原生浏览器 ESM 与 Import Maps,没有沙箱、没有代理、没有专有生命周期,远程模块就是一个发布出去的 ES 模块包。而最关键的改变是:所有协议事实(入口、导出、依赖供给)全部收敛进package.jsonesmx字段,用纯 JSON 声明,机器可读、可校验、可被 AI 理解。

这套设计在 docs/rfc/0001-module-protocol.md 中有完整定义:接线由声明推导,每个(package, major)只有一个所有者,出现重复所有者就是硬错误E_DUP_PROVIDER——不需要选举、不需要闭包级推理,AI 只凭一份声明就能写出正确配置。

esmx validate:免构建的声明验证器

esmx validate是这套工作流的核心工具,位于 packages/core/src/cli/validate.ts。它是 RFC 0001 模块协议解析阶段 1–2 的免构建 dry run:读取当前目录package.json中的esmx声明,运行消费图解析与 supply 合并,不构建任何东西。

它的判定规则简单而严格:退出码非零,仅当存在 error 级别的诊断;只有 warning 时退出码为 0。也就是说,AI 写完声明后对不对,不用人读、不用构建,一条命令的退出码就是答案。

机器可读的 --json 输出

esmx validate加上--json,它会输出一个结构化信封,包含三个键:

  • diagnostics:错误和警告的完整列表,每条都带codemessagefix——不仅告诉你哪里错了,还直接给出修法;
  • supply:逐 major 版本的所有者表,一眼看清每个共享包由谁供给;
  • mounts:解析出的挂载表,标明产物目录与是否已构建。

例如版本冲突会这样报告:

{ "code": "E_VERSION", "module": "base", "package": "vue", "found": "3.0.2", "required": "^3.4.0", "message": "发生了什么、为什么", "fix": "该做哪条声明编辑" }

这类机器可读的结构化诊断,正是 AI Agent 能够自我修复的关键:Agent 把--json输出喂回上下文,就能精准定位并修复声明问题。

它验证什么、不验证什么

esmx validate保证的是解析有效性,而非可构建性。它会检查uses链、版本范围、单一所有者规则(E_DUP_PROVIDER),以及根模块声明的entry/exports文件是否真实存在(E_TARGET_MISSING)。而E_NOT_USEDE_NO_EXPORT这类由打包器在构建时逐 specifier 词法分析后发射的检查,不在它的范围内。所以诚实的闭环是:先跑esmx validate,再跑一次构建或tsc——validate 是快速的第一道门,不是全部预言机。

llms.md:AI 助手的唯一契约

工具再好,AI 也得先"懂规则"。Esmx 在 examples/docs/src/zh/llms.md 提供了一页专为 AI 助手编写的单文件简报,目标读者明确写着:Claude、Cursor、Copilot、Gemini

这份文档是 AI 工具与 Esmx 之间的唯一契约,包含:

  • 5 行讲完 Esmx 是什么:无沙箱、无代理、默认 SSR + hydrate、bundler 无关、单字段声明;
  • 模块协议速查esmx字段的四个可选子字段(entryexportsprovidesuses)及其含义;
  • 三种角色声明示例:供给方(共享平台包)、消费方+供给方(业务远程)、组合方(host);
  • 完整诊断分类表:每种错误码的含义与典型修法;
  • "不存在"的 API 清单:明确告诉 AI 不要凭想象生成 qiankun 风格生命周期或 Module Federation 风格的expose/share配置;
  • 常见错误指引:第一反应永远是跑esmx validate --json

文档中的每个代码块都被 CI 跑过——在这里能 parse、能 build,在真实 Esmx 工程里就一定能跑。这对 AI 尤为重要:Agent 从上下文中学到的每一段示例都是经过验证的真相,而不是"看起来像"的猜测。

三步搭建 AI Agent 微前端工作流

掌握了工具和契约,搭建工作流只需三步。

第一步:让 AI 先读契约

在让 AI 写 Esmx 代码前,把llms.md贴进它的上下文。这份文档同时提供了中英文版本,方便不同语言偏好的助手理解。对于支持联网 fetch 的助手,也可以直接给它文档 URL。

第二步:用 validate 校验 AI 的产出

AI 生成声明后,在项目根目录运行:

esmx validate --json

如果退出码为 0 且diagnostics为空数组,说明声明完全确定了一份合法接线;如果非零,把--json的结构化输出反馈给 AI,让它基于fix字段完成修复。

第三步:构建兜底,形成闭环

validate 通过后,再跑一次构建或tsc确认可构建性与类型正确性。这样每次修改声明都形成一个快速反馈环:声明 → validate 判定 → 反馈修复 → 构建确认,人只需要在关键节点做审查。

Gate 5:Agent 工作流的工程化验证

这套工作流不是纸上谈兵——仓库里的 scripts/gate5.mjs 就是它的工程化证明。这个名为 Gate 5 的测试只给模型两份材料:JSON Schema 和面向 Agent 的 llms.md,然后要求模型完成两类任务:

  • 编写(AUTHORING):根据场景编写正确的esmx声明,首次尝试就必须通过esmx validate --json的退出码判定;
  • 修复(REPAIR):诱导出每种可修复的错误码,把结构化诊断反馈给模型,要求它一次性修复并通过验证。

真实的前沿模型(kimi)在编写任务上拿到了 30/30,在五种声明可修复错误码的修复任务上拿到 49/50,远超通过线。这意味着:只要契约清晰、校验即时,AI 完全能独立完成微前端声明的编写与修复——而 esmx validate 就是那个唯一的裁判。

写在最后

AI 时代的微前端开发,核心不再是"让 AI 写更多代码",而是让 AI 写对代码。Esmx 用一条免构建的esmx validate命令 + 一页llms.md契约,把"对"的定义交给了机器可读的结构化诊断和退出码。对人类开发者来说,这意味着更少的联调排错;对 AI Agent 来说,这意味着它可以自主地编写、校验、修复,真正进入生产级工作流。

如果你正考虑把 AI 助手引入微前端项目,不妨先跑一次esmx validate,感受一下"声明即真理、退出码即裁决"的开发体验。

【免费下载链接】genesisNext-generation micro-frontend framework based on ESM, sandbox-free with zero runtime overhead, supporting multi-framework hybrid development项目地址: https://gitcode.com/gh_mirrors/genesis8/genesis

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表