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