当前位置: 首页 > 后端技术 > Node.js

版本命名及限制规则详解

时间:2023-04-04 00:21:43 Node.js

UnderstandVersionNamingandLimitingRules前言:讲解版本命名及版本限制的相关知识版本命名规则我们常见的版本命名格式为[name].x.y.z-[state]name是一个optionalfield,一般为v,表示versionx.y.z是每个版本的序号,遵循语义化的版本命名约定,其实就是基于这个规范,name字段不应该出现在version之前。可选的state字段表示版本状态,例如b表示beta测试版本,其他常见状态,后面会详细介绍语义版本命名规则。这个规则对版本的迭代命名有很好的限制。核心规则如下。当进行不向后兼容的修改时,增加主版本号y非负整数次版本号(minor)以保持向后兼容;添加新功能时,增加次要版本号z非负整数修订号(补丁)并保持向下兼容,当修复问题但不影响功能时,增加修订号0.y.z表示开发阶段,一切都可能改变在任何时候,不是一个稳定的版本。1.0.0将此版本定义为初始稳定版本,后续所有更新均基于此版本进行修改。版本状态描述方法描述含义αoraalphaversioninternaltestversion,internaltestversion,morebugsβorbbetaversionpublictestversion,versionforexternaltesting,defectiveγorgGammaversion相当成熟的测试版,发布的版本都差不多相同。rcReleaseCandidate是前三个测试版本的进一步版本。它已经实现了所有功能并清除了大部分错误。临近发布倒计时。有时还会进一步细分为rc1和rc2。事实上,大多数前端工具都遵循上述规则。以下字段在商业软件中也会出现。描述法解释意义。Demo版只集成了正式版的部分功能,无法升级。SPSP1是servicepack,意思是升级包。精简版仅包含正式版的核心功能。增强版属于正式版。1free免费版。免费版。发布版本有时间限制。限制在进行包管理时,为了保证安装依赖的兼容性,必须对依赖的包版本进行限制。参考npm限制说明例如如下{"devDependencies":{"karma":"0.13.22"}}表示安装0.13。22版业力。为了便于理解,版本限制的语法简述为[范围描述]<版本号描述>范围描述可选,必须与版本描述匹配确定范围,不能独立存在<小于某个版本号<=小于等于某个版本号>大于某个版本号>=大于等于某个版本号=等于某个版本号,直接写版本号是没有意义的~latestpatchversionbasedontheversionnumberdescription^basedontheversionnumberdescriptionlatestcompatibleversionof-一定范围内,应该出现在两个版本描述的中间,其实语法应该是-,写在这里是为了统一~,^的表达,严格来说结合具体的包管理工具和版本号规则来确定。但对于一般用途,请记住以下原则。^是保证版本兼容性,默认约束小版本号~是保证版本兼容性,默认是补丁号使用^,~的意义是保证工具包对依赖版本的兼容性,并且要排除主版本变更导致依赖失败的可能。版本描述*通配符,类似于glob模式*x,X约等于*号,通常次要版本和补丁的通配符。0.x警惕这个版本,说明依赖不稳定(如果符合语义命名),又因为0.x版本随时可能变化,此时^,~的都表示为补丁版本限制。相关示例如下<1.2.3小于1.2.3的版本都可以接受=1.2.3只支持等于1.2.3的版本<=1.2.3只支持小于等于1.2.3的版本>只支持1.2.3支持版本大于1.2.3>=1.2.3只支持版本1.2.3-2大于等于1.2.3支持版本>=1.2.3<3.0.0版本1.x.1支持>=1.0.1<1.1.0version*supports>=0.0.0version""同*1表示>=1.0.0<2.0.0,其他位置为空,类似1.0>=1.0.0<1.1.0~1.1.1>=1.1.1<1.2.0~1.1>=1.1.0<1.2.0~1>=1.0.0<2.0.0^1.1.1>=1.1.1<2.0.0^0.1。1>=0.1.1<0.2.0这里注意,不要以为是0.1.1-1.0.0之间^0.0.1>=0.0.1<0.0.2同上,请注意大部分包管理tools都是遵循上面的规则,但是在限制版本的时候,请参考包管理工具的配置项说明来确定语法格式。最常用知识核心命名规则总结。版本号通常称为x.y.zx主版本号。增加这个值y倍版本号,向后兼容,增加新特性时增加这个值z补丁号,改变特性时增加这个值a,b,rc来修复问题。在依赖版本兼容的情况下,最新补丁版本^在依赖版本兼容的情况下,latestminorversion重点保证版本依赖的兼容性,依赖的major版本号范围不允许改变,即使您的开发工具包仍然可用。语义版本规范npm版本描述composer版本约束百度文库-版本说明详解wiki软件版本package.json中波浪号(~)和插入号(^)有什么区别