ui-to-vue

ui-to-vue

热门

当用户手头有 UI 设计图截图或导出图,需要批量转换成 Vue 3 组件(特别是基于 Vant、Element Plus 或 Ant Design Vue)时使用。

24万Star
3.6万Fork
更新于 2026/8/2
SKILL.md
只读
名称
ui-to-vue
描述

当用户手头有 UI 设计图截图或导出图,需要批量转换成 Vue 3 组件(特别是基于 Vant、Element Plus 或 Ant Design Vue)时使用。

UI To Vue

将 UI 设计图截图批量转换为 Vue 3 Composition API 组件代码。

适用场景

  • 用户提供了一整套按模块和页面状态分类的设计图截图或导出图。
  • 目标项目为 Vue 3。
  • 用户希望一键生成页面组件、公共组件以及路由关联的初版代码。
  • 用户指定使用 Vant、Element Plus 或 Ant Design Vue 作为 UI 组件库。

不适用场景

  • 用户只有一张截图,需要专门定制单个组件。
  • 目标项目不是 Vue。
  • 界面需要复杂的交互逻辑、数据流或无障碍(accessibility)审查。
  • 截图包含内部敏感客户数据,无法发送给外部模型 API。

输入目录规范

建议采用按模块与页面状态归类的截图目录结构:

screenshots/
|-- HomePage/
|   |-- List/
|   |   |-- HomePage-List-Default@3x.png
|   |   `-- cut-images/
|   |-- cut-images/
|   `-- HomePage-Default@3x.png
`-- cut-images/

支持的切图目录名称包括 assetsiconsspritescutimagescut-images

转换策略

  • 页面归类:将展示列表、详情、表单、加载中或空状态等相关的截图组合合并为一个页面组件。
  • UI 库映射:在可行的情况下,尽量将原生视觉元素精准映射到 Vant、Element Plus 或 Ant Design Vue 的对应组件。
  • 切图优先级:优先提取并使用页面级资源,其次是模块级资源,最后是全局共享资源。
  • 抽离公共组件:当同类 UI 区域重复出现超过一次时,自动提取为公共组件。

CLI 命令行用法

推荐使用 npx 执行转换器,无需依赖全局安装即可开箱即用:

export DASHSCOPE_API_KEY=your_key
npx ui-to-vue-converter@1.0.2 --input ./screenshots --ui vant --output ./src

桌面端 UI 库使用示例:

npx ui-to-vue-converter@1.0.2 --input ./designs --ui element-plus --output ./src
npx ui-to-vue-converter@1.0.2 --input ./designs --ui antd-vue --output ./src

如果已经全局安装了该包,可以直接使用 ui-to-vue 命令:

npm install -g ui-to-vue-converter@1.0.2
ui-to-vue --input ./screenshots --ui vant --output ./src

参数选项

参数 说明 默认值
--input 设计图目录路径 ./screenshots
--ui 指定 UI 库:vantelement-plusantd-vue vant
--output 产出代码目录 ./src
--config 配置文件路径 ./.ui-to-vue.config.json

API Key 配置

转换器支持从配置文件或环境变量中读取 DashScope 凭证。代码仓库中推荐优先采用环境变量配置:

export DASHSCOPE_API_KEY=your_key

如果需要使用本地配置文件,请确保不要提交到版本控制:

{
  "apiKey": "your_dashscope_key",
  "input": "./designs",
  "ui": "vant",
  "output": "./src"
}
.ui-to-vue.config.json

安全与隐私提示

  • 请把设计图截图视为可能会发送给外部模型 API 处理的素材。
  • 未经授权,请勿在包含客户私有设计稿的项目中运行此流程。
  • 在要求可复现的工作流中锁定转换器版本(Pin version),避免直接使用 @latest
  • 在提交代码前,请仔细人工复核生成的 Vue 代码。
  • 严禁提交 .ui-to-vue.config.json、API Key、密钥、生成的敏感信息或客户设计截图。

生成代码复核 Checklist

  • [ ] 页面组件已成功生成在 views/ 或指定的输出目录下。
  • [ ] 重复 UI 区域提取到 components/ 的前提是复用关系明确。
  • [ ] 路由配置代码与目标项目的 Router 规范保持兼容。
  • [ ] 生成的组件全量且一致地使用了指定的 UI 库。
  • [ ] 生成的 CSS 单位与设计基准保持一致。
  • [ ] 代码流畅通过了项目的 Formatter、Linter、类型检查及 Build 构建。
  • [ ] 在 Commit 代码前,已对占位文案、Mock 数据和生成的资源文件完成人工核对。

FAQ 与 Troubleshooting

常见问题 排查建议
401 或鉴权错误 检查运行命令的当前 Shell 环境中是否已正确配置环境变量 DASHSCOPE_API_KEY
提示 command not found: ui-to-vue 请使用 npx ui-to-vue-converter@1.0.2 方式运行,或重新将其全局安装。
切图资源未被成功读取 确认切图目录命名在支持范围内,且准确嵌套在对应的页面或模块路径下。
组件没有使用指定的 UI 库 重新运行并显式指定 --ui 参数,同时检查生成代码的 Import 引用。
布局生成的尺寸/比例不对 检查导出的截图宽度尺寸是否与目标 UI 库的标准基准宽度对齐。

参考资源

  • npm 包:ui-to-vue-converter