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-一定范围内,应该出现在两个版本描述的中间,其实语法应该是
