问题引入:我们在使用npm下载依赖包的时候,在package.json中会出现对应包的版本号。可是我们会发现在版本号之前,一般都会有几个特殊符号。例如:“~”,”^”,”>”……那么这些符号都有什么含义呢?
一般来说,版本号大体分为三个部分
major.minor.patch
主版本号.次版本号.修补版本号
1, version
版本号之前不带任何标记表示必须依赖这个版本的包
例如:"webpack-zepto": "0.0.1"
2, >
大于某个版本,表示只要大于这个版本的安装包都行
例如:"node": "> 4.0.0"
3, >=
大于某个版本,表示只要大于或等于这个版本的安装包都行
例如:"node": ">= 4.0.0"
4, <
小于某个版本,表示只要小于这个版本的安装包都行
例如:"http-proxy-middleware": "<0.17.3"
5, <=
小于或等于某个版本,表示只要小于或等于这个版本的安装包都行
例如:"http-proxy-middleware": "<=0.17.3"
5, ~
大概匹配到哪个版本
如果minor版本号指定了,那么minor版本号不变,而patch版本号任意
如果minor和patch版本号未指定,那么minor和patch版本号任意
如:~1.1.2,表示>=1.1.2 <1.2.0,可以是1.1.2,1.1.3,1.1.4,…..,1.1.n
如:~1.1,表示>=1.1.0 <1.2.0,可以是同上
如:~1,表示>=1.0.0 <2.0.0,可以是1.0.0,1.0.1,1.0.2,…..,1.0.n,1.1.n,1.2.n,…..,1.n.n