vue2+webpack升级vue3+vite,报错Cannot read properties of null (reading ‘isCE‘)

同学们可以私信我加入学习群!



前言

系列文章:vue2+webpack升级vue3+vite,修改插件兼容性bug

前面的文章主要是介绍,在升级初始阶段遇到的一些显而易见的兼容性问题和bug。随着项目迭代的不断深入,一些不容易暴露的问题也渐渐呈现。

本文主要记录一些开发重构过程中的bug


问题

vue报错Cannot read properties of null (reading ‘isCE’)

分析

项目中vue版本出现冲突,可能是项目基础的vue版本与组件库中某个组件依赖的vue版本有冲突。但是我怀疑这只是表象,因为如果存在版本冲突,那么第一天就存在,为什么后面才暴露。而且使用npm列出所有vue版本发现并没有冲突的版本。所以最终虽然解决了,但是总觉得还是不太清楚。

解决

  1. 命令行中输入
npm ls vue

可以查看所有vue的版本,如图:
在这里插入图片描述
如果各位使用脚手架创建的项目,vue的版本会设置‘^’符号,例如我的设置为:

 "vue": "^3.3.4",

大家可以看到package.json中设置的版本号与实际项目中依赖的vue版本并不完全相同,这是因为^符号的含义就是保持大版本不变,可以根据兼容性等实际情况,升级小版本,所以 ’ ^3.3.4’的真实含义是3.3.4及以上版本,这样其实很难真的出现vue版本冲突的情况。通过上面的图片也可以知道,我的所有插件都是依赖于3.3.6。

实际情况确实是报错vue版本冲突,所以我只能认为可能是因为别的原因导致了这个报错,也就是其实报错信息就有问题。我没有想到其他方法严谨地定位到问题,只能把可以做的都做了一遍。

  1. 升级node

看一下自己的node版本,vue2在16版本的node中运行毫无问题,vue3在部分16版本的node中也无太大问题,但是总会出现预料不到的风险,甚至升级某些插件时也会提示node版本过低。vue官网也推荐18版本以上node:
在这里插入图片描述
所以为了省事,还是直接升级node吧。

这里有个问题,那就是18版本的node可能运行vue2时会报错,所以如果是升级vue,可能会有一段时间,既开发vue2,又重构vue3,我们就需要一个很方便的node版本管理工具,推荐nvm。我自己写的基于nvm的可视化工具也快要完成了,基本功能已经实现,还达不到生产标准。

大家可以提前关注一波,等几个重要的工具同时开发完毕,会免费发布并群发消息提醒。如图:
在这里插入图片描述

  1. 虽然大概率不是vue版本的问题,但是为了以防万一,还是对vue版本做一个强制限制吧,在vite中配置参数dedupe,解决vue版本依赖冲突问题:
 resolve: {
   
            dedupe: [
                'vue'
            ],
        },
  1. 如果这些还是无法解决,那就先清楚npm的缓存:
npm cache clean --force

删除node_modules后,重新更新资源,运行项目。


总结

博主的大部分文章都是有价值的原创文章,很少搬运点官方文档就水一篇,大家如果认可,希望多多点赞关注,原创不易,需要支持。

相关推荐

  1. Webpack5 升级》- Vue2.x 组件库 Webpack3 升 5

    2024-01-19 02:16:01       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-19 02:16:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-19 02:16:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-19 02:16:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-19 02:16:01       20 阅读

热门阅读

  1. nginx配置https( Windows Server)

    2024-01-19 02:16:01       35 阅读
  2. Docker

    Docker

    2024-01-19 02:16:01      34 阅读
  3. 数据库系统概论-00引言

    2024-01-19 02:16:01       29 阅读
  4. 怎么检测香港服务器的速度?

    2024-01-19 02:16:01       33 阅读
  5. spring retry 配置及使用

    2024-01-19 02:16:01       36 阅读
  6. 设计模式——命令模式

    2024-01-19 02:16:01       39 阅读
  7. nodejs学习计划--(二)fs文件系统和path模块

    2024-01-19 02:16:01       37 阅读
  8. 【话题】边缘计算的挑战和机遇

    2024-01-19 02:16:01       34 阅读
  9. <sa8650>sa8650 qcxserver-之-DiagnosticManager HealthStatus

    2024-01-19 02:16:01       32 阅读