本文档将帮助你从 Umi 2.x 版本升级到 Umi 3.x 版本。
修改 umi
的版本为 ^3.0.0
或以上,
{"devDependencies": {- "umi": "^2"+ "umi": "^3"}}
由于 Umi 3 需要 Node 10.13 或以上,如果之前有配 engines,需确认下版本号。
为了有更好的 ts 提示,需配置 @@
为 ["src/.umi/*"]
。
+ "@@/*": ["src/.umi/*"]
如果之前有使用 umi-plugin-react
,以下是修改的步骤。
先在 package.json 中修改依赖,
{"devDependencies": {- "umi-plugin-react": "^1"+ "@umijs/preset-react": "^1"}}
然后由于 Umi 3 的配置方式是拍平的方式,还需要修改配置,
export default {- plugins: [- ['umi-plugin-react', {- dva: {},- antd: {},- ...- }]- ],+ dva: {},+ antd: {},+ ...}
注意:
功能变化,
Umi 3 在配置层做了大量精简,以下修改以字母排序,便于查找。
./
可满足所有场景,没有必要再配{ type, options }
,不再支持 string 格式不再保留 umi/xxx
的接口,全部从 umi 中 import。
比如:
- import Link from 'umi/link';+ import { Link } from 'umi';
改用 history
代替。
- import router from 'umi/router';+ import { history } from 'umi';- router.push('/foo');+ history.push('/foo');
需要加 ~
前缀。
比如:
# 别名- background: url(@/assets/logo.png);+ background: url(~@/assets/logo.png);# 三方库- @import url(foo/bar.css);+ @import url(~foo/bar.css);
umi3 中不再使用$
来标识动态路,约定 []
包裹的文件或文件夹为动态路由,[ $]
为可选的动态路由
比如:
src/pages/users/[id].tsx
会成为 /users/:id
src/pages/users/[id$].tsx
会成为 /users/:id?
Umi v3 做了非常多的细节改进和重构,我们尽可能收集了已知的所有不兼容变化和相关影响,但是有可能还是有一些场景我们没有考虑到。如果你在升级过程中遇到了问题,请到 Github issues 进行反馈。我们会尽快响应和相应改进这篇文档。
也可以加 "Umi 3 升级问题互帮互助" 群,
扫上方二维码,并回复 umi 3。