{
"dependencies": {
"one": "1.0.0 - 2.9999.9999",
"two": ">=1.0.2 <2.0.2",
"three": ">1.0.2 <=2.0.4",
"four": "1.0.1",
"five": "<1.0.0 || >=2.3.0<2.4.0 || >=2.0.0<3.0.0",
"six": "http://xyz.com/xyz.tar.gz",
"seven": "~1.2",
"eight": "~1.2.3",
"nine": "1.x",
"the": "1.1.x",
"eleven": "latest",
"twelve": "file:../xyz"
}
}
项目中往往会依赖很多的外部组件,而这些组件都是开源,使用开源的组件时首先要注意的就是它的版本,版本号的差异会造成功能上的很大偏差,搞明白npm中版本符号的含义就是使用组件的基础,npm中的版本符号就是限定版本范围的符号。
版本的格式
major.minor.patch
主版本号.次版本号.修补版本号
版本类型 | 版本详情 | 版本举例 |
---|---|---|
version | 必须完全匹配某版本 | abc: 1.2.2 |
>version | 必须大于某版本 | abc: >1.2.2 |
>=version | 大于或等于某个版本 | abc: >=1.2.2 |
<version | 必须小于某个版本 | abc: <1.2.2 |
<=version | 小于或等于某个版本 | abc: <=1.2.2 |
~version | 大概匹配某个版本 | 如果minor版本号指定了,那么minor版本号不变,而patch版本号任意 如果minor和patch版本号未指定,那么minor和patch版本号任意 例如:~1.1.2,表示abc: >=1.1.2 abc: <1.2.0, 可以是1.1.2,1.1.n 例如:~1.1,表示abc: >=1.1.0 abc: <1.2.0,同上 例如:~1,表示abc:>=1.0.0 abc:<2.0.0,可以是1.0.0, 1.0.1, 1.0.2, 1.0.n, 1.2.n, 1.n.n |
^version | 兼容某个版本 版本号中最左边的非0 数字的右侧可以任意 如果缺少某个版本号 则这个版本号的位置可以任意 |
例如:^1.1.2,表示abc: >=1.1.2 abc:<2.0.0, 可以是1.1.2, 1.1.n, 1.2.n, 1.n.n 例如:^0.2.3,表示abc: >=0.2.3 abc:<0.3.0, 可以是0.2.3, 0.2.4, 0.2.n 例如:^0.0,表示abc: >=0.0.0 abc:<0.1.0, 可以是0.0.0, 0.0.1, 0.0.n |
x-range | x的位置表示任意版本 | 例如:1.2.x, 可以表示1.2.0, 1.2.1, 1.2.n |
*-range | *通配符 | 例如:*,表示>=0.0.0的任意版本 |
version1-version2 | 区间 | 例如:1.0.0-2.0.0表示他们之间的任意版本 |
latest | 最新版本 |