前言
umi项目经过太长时间的维护和迭代,以前使用antd-mobile是v2,很多组件都不能维护,或者不满足使用需求了,所以要把v2升级到v5
感慨
升级,或者说迁移,这在官网都有相应的指南,详情可以戳(从 v2 迁移 - Ant Design Mobile)
而本文主要是记录迁移过程中遇到的坑。
以下内容请你按照官网推荐方式1完成了安装和替换之后再行阅读。
坑1
样式丢失,直接迁移完成后,你可能会发现组件样式没了,官网让你在入口文件里面引入样式
import 'antd-mobile-v2/dist/antd-mobile.less'; // or 'antd-mobile-v2/dist/antd-mobile.css'
那么请引入样式
如果你找不到入口文件,请找到并查看你的route文件,顶级路由所属的component。在里面引入即可
坑2
接下来,继续运行项目,你可能还会遇到报错
类似这样的
ERROR Failed to compile with 4 errors
These dependencies were not found:.......
.....
Module not found:xxxxxxxxxxxxxxxx
...... ....
AssertionError [ERR_ASSERTION]: chunk of umi not found.
这里就需要你找到.umirc.ts文件,设置mobile:false,将umi内置禁用。
export default defineConfig({
base: ....,
publicPath: ....,
.....
antd: {
dark: false,
compact: true,
mobile:false,//在这里设置
},
.....
});
坑3
继续运行项目,你可能还会遇到报错:
Validate config "antd" failed, "mobile" is not allowed
这时候需要你找到package.json文件,找到插件preset,具体名称可能是@umijs/preset-react,也可能是别的类似插件,那么现在修改版本,本文作者的项目使用的就是@umijs/preset-react,项目中原本的版本是^1.x,修改版本为^1.7.0。
其他版本行不行,本文作者(也就是我)没有详细实验,也没有查阅更多的插件更新日志,所以不是很清楚。
因为在其他社区论坛发现也有人说过要升级插件preset,所以本文作者试过最新版本。
截至2024年3月7日星期四,安装过最新版本也是不行的。
如果你不清楚如何修改版本,或者你不知道插件都有哪些版本可以更换,戳这里(Home | Yarn - JavaScript 软件包管理器 | Yarn中文文档 - Yarn中文网 (yarnpkg.cn)),点开后搜索就行。
以上,就是你在迁移过程中大概会遇到的所有坑。埋上!!!!