vue父子项目不同版本问题


这两天遇到一个VUE项目问题,网上资料难找,自己 研究了一下

问题背景:

我们的项目A(vue版本2.6.8),合作插件项目B(vue版本2.6.11),B上传到公司registry库,在我们的项目A里面dependencies引入B组件;

 

B组件:

      import Vue from 'vue'
      import 'xe-utils'
      import VXETable from 'vxe-table'
      import 'vxe-table/lib/index.css'

      Vue.use(VXETable)

B项目单独自己跑没有任何问题,

但是在A项目install之后后报错vxe-table未注册

问题分析:

查看vue版本: npm ls vue

得到如下结果

 

 

 分析得到B项目的 import Vue from 'vue' 来自它本层node_modules 里的vue@2.6.11

而A项目中的import Vue from 'vue' 来自外层 node_modules 里的vue@2.6.8

也就是说他们两个分别在不同的Vue实例注册了组件。

 A项目运行所使用的自然是vue@2.6.8,所以在A项目中自然认为vxe-table没有注册

解决办法:

 办法一:将它们的vue改成相同的版本,注意:先npm uninstall vue 再将package.json 中加上 "vue":"2.6.8" npm install ,不要加^和~以保持版本绝对一致

办法二(推荐):修改B项目,不要用import Vue from 'vue', 而是在B组件install方法里面使用vue,这样总是使用父级的vue,不用担心版本问题

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM