Umi 3 相比 Umi 2 有许多改进和变化,以下是升级的主要步骤和注意事项:
主要变化
- 架构升级:Umi 3 基于 webpack 5 和 babel 7
- 配置简化:许多配置项被简化或重命名
- 插件系统:插件机制更加完善
- 性能提升:构建速度更快,输出更小
直接升级
第一次产生用umi2直接升级到umi4,项目终于可以启动成功之后 发现了这个问题 检查了这个文件的内容是没有什么问题的
结果遇到的第一个问题只是文件名的问题
不过引入的时候这里出现了问题 因为文件名是setDatart,但是引入的时候用的是SetDatart大写的版本,旧版本没有出现问题,不过应该这种隐藏的问题很多,试试看是否屏蔽掉这个校验
反正用的也不多 直接改掉文件名,可以解决
一直到这个报错的时候 我才发现如果要直接升级的话
一 可能要解决的插件问题太多了,而且这个问题定位了半天没有解决,所以选择了先升级到umi3,一口吃不成胖子,慢慢来吧
为什么不建议直接跳级升级?
-
架构变化巨大:
- Umi 3 引入了 webpack 5 和 MFSU(模块联邦热更新)
- Umi 4 进一步升级了底层架构,完全基于 webpack 5 和现代前端工具链
-
配置系统重构:
- Umi 3 已经对配置系统做了大量简化
- Umi 4 的配置系统又进行了进一步优化
-
插件系统变更:
- Umi 3 开始使用新的插件机制
- Umi 4 的插件系统更加标准化
umi2升级umi3
第一个问题先把之前的loader给注释掉,因为umi3中已经是自带的了,不需要手动增加配置
依然是配置文件的问题,直接注释掉block这个配置
这里又出现一个问题说我的命名空间出现重复
Uncaught Invariant Violation: [app.model] namespace should be unique
小小的老子在这里一个一个复制粘贴出来,终于让我找到重复的命名空间了
我真的是服了也不告诉我是哪个重复了 让我一个一个找
在 Dva 中,每个 Model 必须有一个唯一的
namespace,用于标识该 Model 的状态和逻辑。如果多个 Model 使用了相同的namespace,Dva 会抛出这个错误。