主题
package 版本号详细说明
版本号全部示例
json
{
"dependencies": {
"foo": "1.0.0 - 2.9999.9999",
"bar": ">=1.0.2 <2.1.2",
"baz": ">1.0.2 <=2.3.4",
"boo": "2.0.1",
"qux": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0",
"asd": "http://asdf.com/asdf.tar.gz",
"til": "~1.2",
"elf": "~1.2.3",
"two": "2.x",
"thr": "3.3.x",
"lat": "latest",
"dyl": "file:../dyl"
}
}1. 固定版本号
版本锁定, 在npm install安装依赖时候,会确切的安装指定版本
例如
json
{
"dependencies": {
"foo": "1.00"
}
}2. 版本范围
版本范围由运算符+固定版本号组成,运算符如下:
<:小于<=:小于等于>:大于>=:大于等于=:等于. 该符号在实际中可以被忽略掉
形如:
>=1.2.7 <1.3.0:表示版本范围在大于等于1.2.7,小于1.3.0都可以1.2.7 || >=1.2.9 <2.0.0:可以是1.2.7,1.2.9等,但不能是1.2.8,2.0.0
3. 预发布标签alpha
如:>1.2.3-alpha.3中带了预发布标识alpha,那么带预发布标识的版本号需要 [major, minor, patch]一样,即1.2.3-alpha.4,但是1.2.4-alpha.4不满 足条件。 没有带预发布标识的版本只要满足大于 1.2.3-alpha.3 就可以了,比如:1.2.5
4. 预发布标识beta
html
1.2.4-beta.05. 连字符范围-
例如: 版本号 X.Y.Z - A.B.C
1、
1.2.3 - 2.3.4等价于>=1.2.3 <=2.3.42、如果在第一个范围内少了的部分,则用
0替换:1.2 - 2.3.4等价于>=1.2.0 <=2.3.43、如果在第二个范围内少了的部分,则范围都要从这个版本开始:
1.2.3 - 2.3等价于>=1.2.3 <2.4.0-01.2.3 - 2等价于>=1.2.3 <3.0.0-06. 波浪号范围
~例如:
~1.2.3或者~1.2或者~11、
~1.2.3等价于>=1.2.3 <1.(2+1).0即:>=1.2.3 <1.3.0-02、
~1.2等价于>=1.2.0 <1.(2+1).0即:>=1.2.0 <1.3.0-0 (Same as 1.2.x)3、
~1等价于>=1.0.0 <(1+1).0.0即:>=1.0.0 <2.0.0-0 (Same as 1.x)4、
~0.2.3:=>=0.2.3 <0.(2+1).0:=>=0.2.3 <0.3.0-05、
~0.2:=>=0.2.0 <0.(2+1).0:=>=0.2.0 <0.3.0-0 (Same as 0.2.x)6、
~0:=>=0.0.0 <(0+1).0.0:=>=0.0.0 <1.0.0-0 (Same as 0.x)7、
~1.2.3-beta.2:=>=1.2.3-beta.2<1.3.0-0请注意,如果1.2.3版本大于或等于beta.2,则允许预发布。因此,1.2.3-beta.4是允许的,但1.2.4-beta.2则不允许,因为它是不同[major、minor、patch]元组的预发行版
7. 插入符号范围^
例如:^1.2.3 或者 ^0.2.5 或者 ^0.0.4
- 1、
^1.2.3:=>=1.2.3 <2.0.0-0 - 2、
^0.2.3:=>=0.2.3 <0.3.0-0 - 3、
^0.0.3:=>=0.0.3 <0.0.4-0 - 4、
^1.2.3-beta.2:=>=1.2.3-beta.2 <2.0.0-0请注意,如果1.2.3版本大于或等于beta.2,则允许预发布。因此,1.2.3-beta.4是允许的,但1.2.4-beta.2则不允许,因为它是不同[major、minor、patch]元组的预发行版 - 5、
^0.0.3-beta:=>=0.0.3-beta <0.0.4-0请注意,如果大于或等于beta,则仅允许0.0.3版本中的预发布。因此,0.0.3-pr.2是允许的。
