umi2升级umi3

278 阅读3分钟

Umi 3 相比 Umi 2 有许多改进和变化,以下是升级的主要步骤和注意事项:

主要变化

  1. 架构升级:Umi 3 基于 webpack 5 和 babel 7
  2. 配置简化:许多配置项被简化或重命名
  3. 插件系统:插件机制更加完善
  4. 性能提升:构建速度更快,输出更小

直接升级

第一次产生用umi2直接升级到umi4,项目终于可以启动成功之后 发现了这个问题 检查了这个文件的内容是没有什么问题的

image.png

结果遇到的第一个问题只是文件名的问题

image.png

不过引入的时候这里出现了问题 因为文件名是setDatart,但是引入的时候用的是SetDatart大写的版本,旧版本没有出现问题,不过应该这种隐藏的问题很多,试试看是否屏蔽掉这个校验

反正用的也不多 直接改掉文件名,可以解决

一直到这个报错的时候 我才发现如果要直接升级的话

image.png

一 可能要解决的插件问题太多了,而且这个问题定位了半天没有解决,所以选择了先升级到umi3,一口吃不成胖子,慢慢来吧

为什么不建议直接跳级升级?

  1. 架构变化巨大

    • Umi 3 引入了 webpack 5 和 MFSU(模块联邦热更新)
    • Umi 4 进一步升级了底层架构,完全基于 webpack 5 和现代前端工具链
  2. 配置系统重构

    • Umi 3 已经对配置系统做了大量简化
    • Umi 4 的配置系统又进行了进一步优化
  3. 插件系统变更

    • Umi 3 开始使用新的插件机制
    • Umi 4 的插件系统更加标准化

umi2升级umi3

image.png

第一个问题先把之前的loader给注释掉,因为umi3中已经是自带的了,不需要手动增加配置

image.png

依然是配置文件的问题,直接注释掉block这个配置

image.png

这里又出现一个问题说我的命名空间出现重复

Uncaught Invariant Violation: [app.model] namespace should be unique

小小的老子在这里一个一个复制粘贴出来,终于让我找到重复的命名空间了

image.png

我真的是服了也不告诉我是哪个重复了 让我一个一个找

在 Dva 中,每个 Model 必须有一个唯一的 namespace,用于标识该 Model 的状态和逻辑。如果多个 Model 使用了相同的 namespace,Dva 会抛出这个错误。

如果觉得有趣或有收获,请关注我的更新,给个喜欢和分享。您的支持是我写作的最大动力!
往期好文推荐