Ant Design Vue 升级 V4 很麻烦?来试试这个工具吧!

1,006 阅读2分钟

背景

不知道用 Ant Design Vue 的小伙伴们有没有遇到过这些问题:弹窗关不掉、下拉框扩展菜单不支持输入框、想用的组件功能不支持……

image.png

image.png

在一次次使用 Ant Design Vue V3 中遇到问题查找 issue 的过程中,发现 V3 版本实在是存在太多问题了,同时 V3 版本已经彻底不维护了,最终我还是走上了升级 Ant Design Vue 版本的路。

但升级真不是一件容易的事情呀,在官方提供的升级文档中我们可以看到,这次有许多使用上的 break change,直接升级大概率会导致项目功能不可用。

image.png

我们当然可以通过直接搜索/替换来对项目代码进行处理,但这样做不仅低效还容易出问题。作为一位成熟的开发工程师,这种批量的事情当然要通过代码来实现。

React 的 ant-design 有提供对应的 codemod cli 工具来帮忙升级 @ant-design/codemod-v5,但是 Vue 版本的 ant-design-vue 没有提供这类工具。在参考和学习了 React 版的 codemod 基础上,基于 ast-grep 这个库,我做了一个 Vue 版本的 codemod cli 工具。

那么,欢迎大家来试用 ant-design-vue-codemod

ant-design-vue-codemod

npm地址

ant-desgin-vue-codemod 可以帮你✅:

  • 自动替换代码中有变更的 prop:dropdownClassName -> popupClassNamevisible -> open
  • 检测代码中存在的 ant-design-vue/dist/antd.css 样式引入,找到后进行 warning 提示

工具可以帮你把大多数需要处理的场景处理好了,其余部分关于组件库风格、样式之类的变更仍然需要各位开发小伙伴在对项目 review 自测的时候进行处理哈~

使用方法

# 到项目目录下
cd xx
# 使用 npx 直接执行命令
npx ant-design-vue-codemod 
# 或者使用 pnpm dlx 直接执行命令
pnpm dlx ant-design-vue-codemod

正确的使用姿势是:

  1. 先拉出一条新的升级分支
  2. 使用 ant-design-vue-codemod 跑一遍脚本
  3. 对项目进行自测,出现问题时手动进行修改即可

这一轮操作下来可以帮大家省下不少的时间,我们就可以快乐地摸鱼🐟了

运行截图

代码重写

style样式引入检测