Node之package.json中库的版本号详解

简介: Node之package.json中库的版本号详解

当我们查看package.json中已安装的库的时候,

会发现他们的版本号之前都会加一个符号,

有的是插入符号(^),有的是波浪符号(~)。

那么他们到底有什么区别呢?先贴一个例子,对照例子来做解释:

"dependencies": {
"bluebird": "^3.3.4",
"body-parser": "~1.15.2"
}
复制代码
bluebird的版本号:^3.3.4

body-parse的版本号:~1.15.2

当我们使用最新的Node运行‘npm instal --save xxx',的时候,

他会优先考虑使用插入符号(^)而不是波浪符号(~)了。

这对于你来说意味这什么呢?首先我们需要理解这两者(~和^)的区别。

波浪符号(~):他会更新到当前minor version(也就是中间的那位数字)中最新的版本。

放到我们的例子中就是:body-parser:~1.15.2,这个库会去匹配更新到1.15.x的最新版本,

如果出了一个新的版本为1.16.0,则不会自动升级。

波浪符号是曾经npm安装时候的默认符号,现在已经变为了插入符号。

插入符号(^):这个符号就显得非常的灵活了,

他将会把当前库的版本更新到当前major version(也就是第一位数字)中最新的版本。

放到我们的例子中就是:bluebird:^3.3.4,这个库会去匹配3.x.x中最新的版本,

但是他不会自动更新到4.0.0。

总结一下:

~1.15.2 := >=1.15.2 <1.16.0

^3.3.4 := >=3.3.4 <4.0.0

最后解释下之前提到的minor verision和major version:

1.15.2对应就是MAJOR,MINOR.PATCH:

1是marjor version;15是minor version;2是patch version。

MAJOR:这个版本号变化了表示有了一个不可以和上个版本兼容的大更改。

MINOR:这个版本号变化了表示有了增加了新的功能,并且可以向后兼容。

PATCH:这个版本号变化了表示修复了bug,并且可以向后兼容。

因为major version变化表示可能会影响之前版本的兼容性,

所以无论是波浪符号还是插入符号都不会自动去修改major version,

因为这可能导致程序crush,可能需要手动修改代码。

转自:https://blog.csdn.net/njweiyukun/article/details/70309066

作者: Bill 本文地址: http://biaoblog.cn/info?id=1621324140000

版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

相关文章
|
7天前
|
JavaScript NoSQL 中间件
不容错过的 Node 库都有那些?
【4月更文挑战第7天】 探索Node.js生态:Express用于构建Web服务器,Mongoose简化MongoDB操作,Socket.IO实现实时通信。Express提供简洁API和路由功能,Mongoose支持数据验证,Socket.IO确保跨平台实时连接。示例代码展示如何使用这些库,助你提升开发效率。
22 0
|
7天前
|
存储 JSON 安全
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
76 0
|
7天前
|
存储 JSON 算法
C++ JSON库 nlohmann::basic_json::boolean_t 的用法
C++ JSON库 nlohmann::basic_json::boolean_t 的用法
39 0
|
7天前
|
JavaScript 前端开发 API
在Node.js上使用dojo库进行面向对象web应用开发
请注意,虽然这个例子在Node.js环境中使用了Dojo,但Dojo的许多功能(例如DOM操作和AJAX请求)在Node.js环境中可能无法正常工作。因此,如果你打算在Node.js环境中使用Dojo,你可能需要查找一些适用于服务器端JavaScript的替代方案。
18 0
|
7天前
|
JSON 数据格式 索引
python之JMESPath:JSON 查询语法库示例详解
python之JMESPath:JSON 查询语法库示例详解
16 0
|
7天前
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
23 2
|
7天前
|
JSON API 数据格式
python的request库如何拿到json的返回值
python的request库如何拿到json的返回值
43 0
|
7天前
|
缓存 JavaScript 前端开发
serve-static Node.js 工具库的基本作用
serve-static Node.js 工具库的基本作用
21 2
|
7天前
|
存储 JSON JavaScript
【嵌入式开源库】cJSON的使用,高效精简的json解析库
【嵌入式开源库】cJSON的使用,高效精简的json解析库
|
7天前
|
JSON JavaScript 数据格式
【深入探究C++ JSON库】解析JSON元素的层级管理与遍历手段
【深入探究C++ JSON库】解析JSON元素的层级管理与遍历手段
160 2