参考资料:

在package的devDependencies和dependencies2个字段中有指定依赖包版本,这个版本返回一个由一个或多个空格分隔的字符串,这些版本是有一定的语义的,当然依赖还可以用tarball或者git URL。下面我们来学习下这些版本代表的语义。

语义化版本控制的规范是由Gravatars创办者兼GitHub共同创办者Tom Preston-Werner所建立。

版本号的意义

主版号.次版号.修订号( x.y.z )

  • 主版号:当你做了不相容的 API 修改,
  • 次版号:当你做了向下相容的功能性新增,
  • 修订号:当你做了向下相容的问题修正。

指定版本

0.1.2 //指定依赖版本为0.1.2

范围依赖

在指定范围内选择稳定版本进行安装

< Less than
<= Less than or equal to
> Greater than
>= Greater than or equal to console.info(semver.satisfies('1.2.3', '<1.2.0')); //false
console.info(semver.satisfies('1.2.3', '<1.3.0')); //true
console.info(semver.satisfies('1.2.3', '<1.2')); //false
console.info(semver.satisfies('1.2.3', '<1.3')); //true console.info(semver.satisfies('1.2.3', '>1.2')); //false
console.info(semver.satisfies('1.2.3', '>1.2.0')); //true console.info(semver.satisfies('1.2.3', '>1.2 || <1.2')); //true
console.info(semver.satisfies('1.2.0', '>1.2 || <1.2')); //true

高级范围选择

1.2.3 - 2.3.4  //>=1.2.3 <=2.3.4
1.2 - 2.3.4 // >=1.2.0 <=2.3.4
1.2.3 - 2.3 //>=1.2.3 <2.4.0
1.2.3 - 2 // >=1.2.3 <3.0.0
* // >=0.0.0
1.x // >=1.0.0 <2.0.0
1.2.x // >=1.2.0 <1.3.0
"" (empty string) // >=0.0.0
1 // 1.x.x >=1.0.0 <2.0.0
1.2 // 1.2.x >=1.2.0 <1.3.0

波浪范围选择

介于当前版本和副版本+1之间的版本,如不存在副版本,则介于当前版本和主版本+1版本

~1.2.3 // >=1.2.3 <1.3.0
~1.2 // >=1.2.0 <1.3.0 (Same as 1.2.x)
~1 // >=1.0.0 <2.0.0 (Same as 1.x)
~0.2.3 // >=0.2.3 <0.3.0
~0.2 // = >=0.2.0 <0.3.0 (Same as 0.2.x)
~0 // >=0.0.0 <1.0.0 (Same as 0.x)

插入号范围选择

在指定了副版本情况下或主版本不为0情况下,介于当前版本和主版本+1之间的版本,其他情况介于当前版本和副版本+1之间

^1.2.3 // >=1.2.3 <2.0.0
^0.2.3 // >=0.2.3 <0.3.0
^0.0.3 // >=0.0.3 <0.0.4
^1.2.x // >=1.2.0 <2.0.0
^0.0.x // >=0.0.0 <0.1.0
^0.0 // >=0.0.0 <0.1.0
^1.x // >=1.0.0 <2.0.0
^0.x // >=0.0.0 <1.0.0

语义化npm版本号的更多相关文章

  1. Semver(语义化版本号)扫盲

    最近Github 10周年在朋友圈里沸沸扬扬刷屏,小编在工作中却惊讶的发现不少同事对版本号中的beta和rc没有概念,使用 npm install package@next 时,也不清楚next代表的 ...

  2. npm学习(八)之如何使用语义化版本

    npm的语义化版本控制——Semantic versioning 在新发布的代码中传达更改的程度非常重要,因为有时更新会破坏包需要的代码(称为依赖项).语义化版本控制(semver)是一个旨在解决这个 ...

  3. semantic versioning语义化版本号

    语义化版本号 是由github创始人 Tom Preston-Werner 发起的一个关于软件版本号的命名规范,关于这个规范详细的说明可以在 官网 查看,也可访问其 GitHub项目页面 ,官网文档: ...

  4. semver语义化版本号

    semver语义化版本号 语义化版本号各位置的含义 版本号:X.Y.Z X: 代表发生了不兼容的API改变 Y: 代表向后兼容的功能性变化 Z: 代表向后兼容bug fixes 语义化版本号示例 1. ...

  5. 版本号严格遵守semver语义化标准

    地址:http://semver.org/lang/zh-CN/?spm=a219a.7629140.0.0.GUJMXE 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递 ...

  6. HTML语义化:HTML5的新标签及IE5.5~9的部分兼容方案

    一.前言 本文将介绍HTML5中新增的语义化标签,及在IE5.5~9(IE9已经开始支持部分HTML5新标签了)支持这些新标签的兼容性处理. 目录一坨: 二.语义化标签:article.aside.t ...

  7. 语义化版本控制规范(SemVer)

    摘自: http://semver.org/lang/zh-CN/ 简介 在软件管理的领域里存在着被称作"依赖地狱"的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某 ...

  8. 语义化版本控制规范(SemVer)

    参考链接 https://semver.org/lang/zh-CN/ 语义化版本 2.0.0 (透过版本号的改变来传达信息.) 摘要 版本格式: 主版本号.次版本号.修订号 版本号递增规则如下: 1 ...

  9. 关于HTML语义化的一些理解

    语义化这个词我想大家都看到了无数次,特别是在一些招聘广告上. 其实我自己也是,不过每次看到都觉得是那些招聘公司复制的,其实他们根本说不清语义化是什么,而且也根本不看重. 所以我一直也没把这东西当回事过 ...

随机推荐

  1. 关于顺序磁盘IO比内存随机IO快的讨论

    这个问题来源于我书中引用的一幅图: 我们从图中明显可以看某性能测试的结果表明普通机械磁盘的顺序I/O性能指标是53.2M values/s,SSD的顺序I/O性能指标是42.2M values/s,而 ...

  2. Spring学习八----------Bean的配置之Resources

    © 版权声明:本文为博主原创文章,转载请注明出处 Resources 针对于资源文件的统一接口 -UrlResource:URL对应的资源,根据一个URL地址即可创建 -ClassPathResour ...

  3. JAVA学习第二十五课(多线程(四))- 单例设计模式涉及的多线程问题

    一.多线程下的单例设计模式 利用双重推断的形式解决懒汉式的安全问题和效率问题 //饿汉式 /*class Single { private static final Single t = new Si ...

  4. Java中的Enum的继承

    public interface Icolor{ int apply(int x,int y); } public enum color implements Icolor{ plus("+ ...

  5. 深入Asyncio(三)Asyncio初体验

    Asyncio初体验 Asyncio在Python中提供的API很复杂,其旨在替不同群体的人解决不同的问题,也正是由于这个原因,所以很难区分重点. 可以根据asyncio在Python中的特性,将其划 ...

  6. NUTCH2.3 hadoop2.7.1 hbase1.0.1.1 solr5.2.1部署(二)

     Precondition: hadoop 2.7.1 hbase 1.0.1.1 / hbase 0.98.13 192.168.1.106 ->master 192.168.1.105 ...

  7. 在WPF对话框中如何验证用户提供的数据

    在WPF中,MS在msdn的WPF应用程序开发中对用户输入的数据验证做了示范,基本思想就是添加各种类型的校验规则,比如最大最小值.字符串长度.是否为空等等,在后在界面绑定数据时添加数据字段的校验.这样 ...

  8. 认识XmlReader

    认识XmlReader   摘要 XmlReader类是组成.NET的关键技术之一,极大地方便了开发人员对Xml的操作.通过本文您将对XmlReader有一个很好的认识,并将其应用到实际开发中. 目录 ...

  9. win本地配置docker环境

    先上官网链接:https://docs.docker.com/get-started/part2/#introduction 优质入门教程:http://www.docker.org.cn/book/ ...

  10. Cannot create __weak reference in file using manual reference counting

    Xcode更新到7.3后会出现NSObject+MJProperty.h报Cannot create __weak reference in file using manual reference c ...