icon自动化交付

背景:

目前项目icon库的管理较为混乱,视觉设计人员缺少对icon 的集中管理能力(列表查询、新增、修改、删除),项目新增一个icon时, 需要开发人员从figma 视觉稿中一个一个导出新增的svg icon, 手动将其增加到我们处理svg icon的项目中,把它变成内联svg 代码的 Vue 组件,然后发布一个新的icons npm 包版本才可以在项目中使用,过程繁琐,大大降低了开发效率。

解决思路:

加强设计人员对icon 库的管理能力,降低icon库增删查改时,开发人员的手工重复操作,提升开发效率

方案一:

新增一个svg icon 在线管理平台,视觉设计人员可增加/修改/删除 icon,开发人员直接从列表中复制组件代码即可使用

优点:

  1. 项目更新icon无需发版,设计人员更新即上线

缺点:

  1. 需要搭建一个svg icon 在线管理平台,前期投入开发成本较大
  2. 视觉设计人员更新步骤较为繁琐,需要先在figma 上进行设计,然后导出svg文件,提交到icon 在线管理平台上
  3. 即更即上线带来了一些线上风险,比如视觉设计人员删除了个别icon,导致线上环境获取不到icon 报错
  4. 可复用性低,当有另外一个平台也需要管理icon 时,需要新增一套前端和后台代码,和上线一个新的平台,可以通过建文件夹区分项目的方式

方案二:

使用figma + gitlab CI 完成SVG图标的完全自动化交付

实现:

  1. 开发一个figma 插件,完成与icon库 gitlab仓库的绑定,用于从 Master 拉取更新分⽀,和后面提交merge request,(为了可复用到其他项目,提高插件的可复用性,将云桌面项目icons 库的gitlab 仓库地址和 gitlab token 不写死在插件中,而是采用前端表单方式进行提交,并存储在localStorage中)

  2. 开发一个icons 转换成 vue 组件的仓库,在这里会使用到figma api,获取页面中的svg组件,然后使用svgo 插件精简 SVG 代码,并根据是否被配置为多色图标对 SVG 代码的"fill"等属性进行修改,在这之后采用 Inline SVG 方式生成 Vue 组件)

  3. 联合视觉,将所有的icon放到figma一个公共模块上,并在完成icon上传时点击发布触发流程提交 merge request,开发合并分支后自动发版,最终开发在项目中更新包版本即可使用。

优点:

  1. 视觉设计人员更新步骤简单,不用离开自己进行设计工作的平台,直接在figma上进行设计svg icon,然后全部设计完毕,打开插件,填写新的版本号和修改内容,就能一键提交merge request了;

  2. 更新风险较小,当设计人员更新icon 库,提交merge request后,需要由开发人员合并,并且开发人员需要在项目中进行icon库的更新,按照自测、送测流程才会更新到线上环境

  3. 可复用性高,当有另外一个平台也需要管理icon 时,只需新增一套前端代码,然后修改figma 文件地址、figma toekn 等配置即可

综上所述,最终选择了方案二

落地成效:

原先开发人员更新icon库流程需要的4步流程,精简为1步(同意merge request),并且从始至终都不需要设计师和开发离开自己熟悉的工作环境,也不需要讲一句话 ,极大地提升了交付效率。

相关推荐
玖釉-5 分钟前
解决PowerShell执行策略导致的npm脚本无法运行问题
前端·npm·node.js
Larcher38 分钟前
新手也能学会,100行代码玩AI LOGO
前端·llm·html
徐子颐1 小时前
从 Vibe Coding 到 Agent Coding:Cursor 2.0 开启下一代 AI 开发范式
前端
小月鸭1 小时前
如何理解HTML语义化
前端·html
jump6801 小时前
url输入到网页展示会发生什么?
前端
诸葛韩信1 小时前
我们需要了解的Web Workers
前端
brzhang2 小时前
我觉得可以试试 TOON —— 一个为 LLM 而生的极致压缩数据格式
前端·后端·架构
yivifu2 小时前
JavaScript Selection API详解
java·前端·javascript
这儿有一堆花2 小时前
告别 Class 组件:拥抱 React Hooks 带来的函数式新范式
前端·javascript·react.js
十二春秋2 小时前
场景模拟:基础路由配置
前端