请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

假如vue的组件库的vue版本跟主工程的vue版本不一致,会出什么问题吗?

今天了解到的Peer Dependencies的概念
可以统一组件库的依赖版本跟主工程的依赖版本
减少打包体积

但是假如存在packageA要求某个依赖d1的版本高于x,而另外一个packageB要求的版本低于x
这种时候应该怎么办呢?
这个时候我感觉可以让A跟B分别有自己的依赖d1

但是跟同事交流过程中,他说例如react跟vue这种依赖,就不能有两个不同的版本
这个是为什么呢?
除了会增大包体积以外还有别的问题吗?

可以举个例子吗?

按照个人的理解
既然已经分开了,那么pA跟pB以及主工程都用了不同的d1,那么为啥会造成影响呢?

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2020-08-12 20:37:44

首先,Vue 的组件库可以看作为 Vue 的插件,Vue 的插件开发都不会直接依赖 Vue 的,Vue 只是插件的开发时依赖。而当你的 Vue 项目依赖 Vue 开发的组件库的时候,会通过 Vue.use 去注册组件库,其实就会把 Vue 作为参数传递到 install 函数中,你就可以在组件库中访问到 Vue 了,所以组件库不需要依赖 Vue。
至于版本,一般只要保证应用中的 Vue 版本高于组件库的 Vue 版本即可,因为通常都是向后兼容的,当然版本一致最好。但是不能出现大版本的不一致,比如 Vue 2 和 Vue 3。

0 回复 有任何疑惑可以回复我~
  • 提问者 李行知 #1
    也就是说,假如组件库依赖了某个依赖,这个依赖没有写到peer Dependencies 里面,而主工程也是使用了这个依赖,但是在主工程里面并不需要将这个依赖给组件库,那么就没有问题,比如不同版本的lodash,但是假如使用了类似vue.use之类的写法,对组件库本身的使用就需要在外层使用这个依赖,就很容易出现问题。
    
    对vue组件库来说,有的时候其实并不是直接依赖vue的。
    回复 有任何疑惑可以回复我~ 2020-08-13 15:24:04
  • ustbhuangyi 回复 提问者 李行知 #2
    如果是一些相同基础库的依赖,在组件库中可以定义 peer Dependencies,让 App 去提供依赖,比如 axios
    回复 有任何疑惑可以回复我~ 2020-08-13 18:06:30
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信