一、行业背景与核心概念
1. D2C 技术是什么?
D2C 是 Design to Code(设计稿到代码)的缩写。它是一种通过解析设计稿文件(如Photoshop、Sketch、MasterGo等)自动生成前端代码(HTML、CSS等)的技术。在理想状态下,前端工程师可以借助D2C工具从繁琐的UI还原工作中解放出来,将更多精力投入到更具业务价值的项目中。
2. MCP 协议是什么?
MCP 是 Model Context Protocol(模型上下文协议)的缩写。它是一个开放协议,为AI应用程序(如大语言模型)连接外部数据源和工具提供了标准化的接口。你可以将MCP理解为AI应用的“USB接口”,它统一了AI与各种工具、数据源的交互方式。
二、现有 D2C 工具的痛点分析
在实际业务中,设计稿通常非常复杂,包含大量“脏数据”(如隐藏图层、偏移元素等)。我们选取了集团内几款优秀的D2C工具:达拉然、OneDay、imgCook、Wea veFox,并使用一张典型的复杂交易设计稿进行对比测试。
测试标准:统一选择容器 2084 作为测试区域,该区域包含“换一换”按钮和商品模块。
设计稿的复杂性:即使隐藏部分图层,底部仍存在大量污染信息(例如多余的按钮和价格图层)。约束设计师行为几乎不可行,因此工具必须能够智能过滤这些干扰。
测试结果对比表
| 工具 | 生成结果 | CSS 问题 | 节点问题 | 流程问题 |
|---|---|---|---|---|
| 达拉然 | — |
|
可以区分出大致组件 |
|
| OneDay | — |
|
节点文案未预置为变量,后续仍需修改 |
|
| imgCook | — |
|
无法过滤无效图层,导致节点重复 |
|
| Wea veFox | — |
|
节点组件排布较为合理 |
|
小提示: Wea veFox 在布局识别方面表现出色,但其他方面(颜色、单位、宽度)存在明显短板。
核心痛点总结
A. 代码生成层面
- 布局难以维护:依赖
position、align-self、z-index布局。 - 单位不统一:不支持手淘的
rpx自适应单位(除达拉然外)。 - 图层依赖性强:对设计稿图层信息高度依赖,无法有效排除无效图层(除Wea veFox外)。
B. 流程层面
- 链路冗长:需要跳转到其他平台预览代码。
- 手动复制耗时:需要一个个文件手动复制到工程中,无法识别工程上下文。
三、全新解决方案:D2C + MCP 的智能生码流程
1. 整体架构与工作流程
交易前端MCP的D2C流程主要分为两个操作区域:
1.1 交易 D2C 插件(设计稿端)
- 操作步骤:用户在MasterGo等设计稿中选中图层,然后点击“生成IR (中间代码)”。
- 功能:用户可选择生成的组件类型、组件名称、组件生成位置。
- 输出:一键复制生成的组件信息(IR中间码)。
1.2 交易终端 MCP 工具(IDE端)
- 操作步骤:在Aone IDE的交易终端MCP中,直接粘贴上一步复制的IR信息,回车发送。
- 效果:等待片刻,组件代码即可自动生成到项目中。
- 核心流程:MCP工具链严格按照预设步骤生成组件。
小提示:整个流程从“选图层”到“生成代码”仅需三步,极大缩短了操作路径。
2. IR 中间码:连接视觉与代码的桥梁
IR 中间码 是前端大模型的一种标准格式,能够完备地描述任意平台的UI,它是基于认知理解的最小单元。它描述了组件的父子结构、属性以及样式,可以向下兼容或组合兼容多种技术栈。
Wea veFox 在视觉布局上具有优势,不依赖图层结构,能有效规避脏数据问题。但其依赖视觉检测,对组件宽度的切割不够精确(例如,图片会含有多余白边)。
3. 组件生成模板
在MCP工具中设置的一种 Resource 资源,用于指导AI Agent按照项目规范生成组件。这确保了生成的代码与日常开发风格一致,易于调试和维护。
4. 设计规范优化:解决视觉识别不准问题
Wea veFox依赖视觉检测,无法精确识别颜色、字重、字号等样式信息,导致生成代码样式错误频发。解决方案是引入 设计规范:
- 将项目设计规范(如颜色、边距、字号、字重、圆角等)提供给大模型。
- 大模型在生成代码时,会根据规范对 Wea veFox 生成的 IR 中的样式进行就近修正。
优化效果:应用规范后,颜色、字号、圆角等样式的准确性大幅提升,不再需要人工逐一修改。
5. 设计稿 DSL 召回修复:精准还原设计意图
即使有设计规范,对于元素的宽高、字重等信息的修正能力仍然有限。针对此问题,我们引入了 设计稿原始信息(DSL)召回修复 机制:
- 从设计稿中提取原始的、精确的元信息(如宽度、高度、颜色值)。
- 用这些精确信息来修复 Wea veFox 生成的不准确样式。
修复效果对比:
| 对比项 | 原图 | 无召回 | 有召回 |
|---|---|---|---|
| 样式效果 | — | — | — |
| 修复效果 | — | — | — |
通过多轮测试验证,DSL 召回修复对字重和元素宽高的修复效果显著。
常见问题:为什么需要“设计规范”和“DSL召回”双重优化?
答案:Wea veFox 的视觉识别能力强,但样式细节弱;设计规范能修正常见样式的“接近值”,但对于特殊或精确的宽高、字重,需要依赖设计稿的原始DSL数据进行精准召回。两者结合,优势互补,实现了既保证布局准确,又保证样式精确的目标。
四、核心难点攻克
难点 1:如何确保上传到 Wea veFox 的图片尺寸恰好为 750px?
背景: Wea veFox生成的IR信息与上传图片的像素一一对应。要生成符合手淘 rpx 规范的代码(750rpx),上传图片宽度必须精准为750px。
尝试过的方案及问题:
- 用户手动截图:心智负担重,且存在像素偏差,导致生成代码不精确。
- 镜师妹方案:需要用户手动缩放,心智负担重,且与交易业务非低代码场景不匹配。
- 从设计稿复制并缩放:链路太长,需要多步操作。
- 在MCP工具中由AI缩放:无法规避AI的“幻觉”风险,可能导致缩放比例错误。
最终解决方案:交易 D2C 插件
- 核心思路:开发一个设计稿插件,通过插件API直接从设计稿中获取图层。由于API获取的图层尺寸就是设计同学提供的原始尺寸,因此不存在图片缩放问题。
- 用户操作:仅需两步:1. 选择图层 → 2. 点击生成IR。
此举从源头解决了图片尺寸不准确的问题,彻底打通了 Wea veFox 链路。
难点 2:设计稿 DSL 数据体积过大,超出大模型 token 限制
背景:设计稿的原始DSL数据(JSON)非常庞大(例如17万+字符),直接输入给大模型会超出其上下文限制(tokens),阻塞MCP运行。
解决方案:DSL 压缩器
开发一个DSL压缩器,提取前端生成代码真正需要的核心信息,摒弃冗余数据。
2.1 压缩策略
- 消除冗余:移除重复的宽度、高度、渲染边界等信息。
- 扁平化结构:将多层嵌套(如
layout.width.value)扁平化为styles.width。 - 解析 Token 引用:将
styleTokenAlias等引用解析为实际的CSS变量值或具体颜色值。 - 简化 CALC 布局:将复杂的百分比计算(如
"100% - -7.5% - 0%")根据父级容器尺寸直接简化为像素值。
2.2 压缩效果
原始大小:174,363 字符 → 压缩后大小:9,740 字符。 压缩率:94.4%
压缩后的DSL数据可以顺利与IR信息一同输入给大模型,不再受tokens限制。
常见问题:压缩后的数据会丢失关键信息吗?
答案:不会。压缩器的设计宗旨是“提取前端关键信息”,保留了组件结构、尺寸、颜色、图片链接等生成准确代码所必需的核心数据。冗余的元信息(如矩阵变换、内联样式ID等)对前端代码生成无直接帮助,因此被移除。
五、应用效果与优缺点分析
1. 应用效果展示
该方案已在交易业务的多个场景中进行实测,生成了高质量的代码。以下是一些场景的对比效果:
| 业务场景 | 设计稿 | 生成后的代码 |
|---|---|---|
| SKU | ![]() |
![]() |
| Newbuy | — | — |
| 支付成功 | — | — |
| 订单 | — | — |
| 订单搜索 | — | — |
| 购物车 | ![]() |
![]() |
| 逆向 |
2. 优点
- 用户操作链路最简化:“选图层→生成IR→粘贴到IDE”三步走,是目前最简洁的路径。
- 实现了Wea veFox链路的精准切图:通过插件直接从设计稿获取图片,避免了截图带来的像素偏差。
- 基于MCP工具的可扩展性:后续可轻松接入埋点、JS tracker、真机测试等功能,形成全链路自动化。
- 有效规避设计稿脏数据:充分利用Wea veFox的视觉优势,不受制于图层污染信息。
- DSL压缩优化,提取关键信息:补足了Wea veFox在颜色、字重等样式识别上的短板。
- 具有普适性:生成的代码符合手淘
rpx规范,兼容DX、Weex、H5等多种业务场景。
3. 缺点与待改进点
- 边距识别准确性有待提升:Wea veFox的视觉布局与设计稿的精确布局仍存在差异,边距问题尚未完美解决。
- 图片产出不稳定:Wea veFox偶尔无法检测到图片,导致未生成对应节点,后续DSL召回链路也无法补充。
- AI生成效果的稳定性:MCP工作流复杂,AI偶尔会产生“幻觉”,影响检测点和最终代码质量。
六、总结与未来展望
本文围绕交易业务中设计稿代码生成的复杂问题,提出了一套完整的、基于D2C与MCP结合的智能生码方案。核心思路可概括为三点:
- 技术整合与优化:将Wea veFox的视觉布局能力与设计规范、DSL召回修复机制相结合,解决了传统工具布局不可维护、样式不准确的问题。
- 流程简化与效率提升:通过开发设计稿插件和MCP工具集成,将冗长的多平台操作压缩为三步。DSL压缩技术将数据量减少约90%,突破AI输入限制。
- 多端适配与扩展性:生成的代码符合手淘
rpx规范,兼容多种业务环境,并为后续全链路自动化预留了扩展接口。
虽然当前在边距精度和AI稳定性上仍有改进空间,但该方案已显著降低了开发对设计稿的处理成本。未来,通过优化DSL修复能力、支持业务定制组件能力,有望进一步缩短从设计到代码的交付周期,让AI生码真正成为解放前端生产力的利器。
常见问题:这个方案是否只适用于淘宝交易业务?
答案:不是。虽然方案是针对交易前端场景优化的,但其核心思想(利用视觉能力做布局,利用设计数据做样式修复,通过MCP统一管理流程)具有普适性。任何面临复杂设计稿还原难题的前端团队都可以参考此方案进行技术选型。


