语义化npm版本号
参考资料:
在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版本号的更多相关文章
- Semver(语义化版本号)扫盲
最近Github 10周年在朋友圈里沸沸扬扬刷屏,小编在工作中却惊讶的发现不少同事对版本号中的beta和rc没有概念,使用 npm install package@next 时,也不清楚next代表的 ...
- npm学习(八)之如何使用语义化版本
npm的语义化版本控制——Semantic versioning 在新发布的代码中传达更改的程度非常重要,因为有时更新会破坏包需要的代码(称为依赖项).语义化版本控制(semver)是一个旨在解决这个 ...
- semantic versioning语义化版本号
语义化版本号 是由github创始人 Tom Preston-Werner 发起的一个关于软件版本号的命名规范,关于这个规范详细的说明可以在 官网 查看,也可访问其 GitHub项目页面 ,官网文档: ...
- semver语义化版本号
semver语义化版本号 语义化版本号各位置的含义 版本号:X.Y.Z X: 代表发生了不兼容的API改变 Y: 代表向后兼容的功能性变化 Z: 代表向后兼容bug fixes 语义化版本号示例 1. ...
- 版本号严格遵守semver语义化标准
地址:http://semver.org/lang/zh-CN/?spm=a219a.7629140.0.0.GUJMXE 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递 ...
- HTML语义化:HTML5的新标签及IE5.5~9的部分兼容方案
一.前言 本文将介绍HTML5中新增的语义化标签,及在IE5.5~9(IE9已经开始支持部分HTML5新标签了)支持这些新标签的兼容性处理. 目录一坨: 二.语义化标签:article.aside.t ...
- 语义化版本控制规范(SemVer)
摘自: http://semver.org/lang/zh-CN/ 简介 在软件管理的领域里存在着被称作"依赖地狱"的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某 ...
- 语义化版本控制规范(SemVer)
参考链接 https://semver.org/lang/zh-CN/ 语义化版本 2.0.0 (透过版本号的改变来传达信息.) 摘要 版本格式: 主版本号.次版本号.修订号 版本号递增规则如下: 1 ...
- 关于HTML语义化的一些理解
语义化这个词我想大家都看到了无数次,特别是在一些招聘广告上. 其实我自己也是,不过每次看到都觉得是那些招聘公司复制的,其实他们根本说不清语义化是什么,而且也根本不看重. 所以我一直也没把这东西当回事过 ...
随机推荐
- C# DataTable 总结
(1)构造函数 DataTable() 不带参数初始化DataTable 类的新实例. DataTable(string tableName) 用指定的表名初始化DataTable 类的新实例. ...
- OpenGL研究3.0 多边形区域填充
OpenGL研究3.0 多边形区域填充 DionysosLai(906391500@qq.com)2014-06-22 所谓多边形区域填充.就是将多边形内部区域,所有已相同色块填充.注意:这里讨论的多 ...
- mycat可以干什么
单纯的读写分离,此时配置最为简单,支持读写分离,主从切换 分表分库,对于超过 1000 万的表进行分片,最大支持 1000 亿的单表分片 多租户应用,每个应用一个库,但应用程序只连接 Myca ...
- Java结束线程的三种方法
线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方法是永远不会结束的.例如在程序中使用线程进行So ...
- 在tomcat中用jndi配置数据源启动java web程序
1.在web.xml中添加: <resource-ref> <res-ref-name>jdbc/MTSDB</res-ref-name> <re ...
- Effective Java - [3. 对象通用方法]
Item 10. 若覆盖equals方法,需要遵守规则
- ScrollView分析
本文转载至 http://blog.sina.com.cn/s/blog_a843a8850101dsg5.html Properties alwaysBounceHorizontal ...
- php字符串中 转义字符 “ ’‘ ” ’ “” ‘ " \’ ' ' \‘ " " \" '' \ " " 使用
<?php echo $str_string1='甲问:"你在哪里学的PHP?"'; echo "<br />"; echo $str_str ...
- 几句话搞懂URI、URL、URN之间的关系
1.URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源. 2.RL是uniform resource locator,统一资源定位器,它是一种具体 ...
- 九度OJ 1145:Candy Sharing Game(分享蜡烛游戏) (模拟)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:248 解决:194 题目描述: A number of students sit in a circle facing their teac ...