npm包的依赖版本比较

本文探讨了在项目中遇到的npm包版本冲突问题,解释了npm如何通过扁平化的node_modules结构管理依赖。同时,详细介绍了SemVer版本控制规范,包括版本格式、先行版本和版本号优先级。还解析了^和~符号的版本升级策略,并通过redux举例说明版本冲突的处理。
摘要由CSDN通过智能技术生成

项目中遇到的问题

有个npm包叫a,项目的dependencies有a和b两个依赖,a的版本是version1。b中也依赖了a这个包,版本是version2。在项目打包的时候,会把a的这两个版本都打进build文件中。本文主要分析对同一个包有多个版本依赖的情况。

npm如何管理node_modules

在npm 3.0版本之前,node_modules里面的依赖是一种树形的嵌套结构,这样会造成很多依赖重复安装,并且node_modules的层级会非常深。

在npm 3.0的版本中,会先分析所有的依赖关系,尽可能的把依赖层级拍平。如果一个包没有被重复依赖,它会安装在node_modules的第一层。当同一个包出现版本冲突时,会根据就近原则,把对应的依赖安装在当前包的node_modules文件夹中。

版本号管理:SemVer

SemVer的中文名称是语义化版本控制规范。npm默认使用SemVer来进行模块的版本控制。一个发布到npm的包要严格遵守SemVer的版本规范,不然会发布失败。

版本格式

主版本号.次版本号.修订号,可以用x.y.z的写法来简单表示。

  • 主版本号:只有在新增了无法向下兼容的API的时候,才可以递增。
  • 次版本号:只有在新增了可以向下兼容的新功能的时候,才可以递增,可以理解为feature版本。
  • 修订号:只有在做了向下兼容的修正时才可以递增,可以理解为bug fix版本
先行版本

当要进行大版本迭代的时候,或者增加一些核心的功能,但又不能保证新版本百分之百正常,这个时候就

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值