mik*_*ana 13 npm semantic-versioning
例如:
2.0.0的package-name安装.2.1.2npm install package-name@latest它4.3.0如何安装没有重大更改的最新软件包?
Kev*_*ski 13
使用 npm install package-name@"<next-major.0.0"
例如:
npm install package-name@"<3.0.0" 会在3.0.0之前安装最新的权利(例如2.11.1)
Npm使用semver,所以你可以使用各种各样的东西来接近你的目标
查看官方文档,您可以使用以下内容:
npm install package-name@">=2.1.2 <2.2.0"
Run Code Online (Sandbox Code Playgroud)
还有更多种类的范围,所以你可以使用这种形式的 高级范围语法,你可以看到,这是一个样本,最终的semver repo有趣的摘录是你的答案:
高级范围语法以确定的方式去处理原始比较器.
高级范围可以与使用空格或||的原始比较器相同的方式组合.连字符范围XYZ - ABC
指定包含集.
Run Code Online (Sandbox Code Playgroud)1.2.3 - 2.3.4 := >=1.2.3 <=2.3.4如果提供部分版本作为包含范围中的第一个版本,则缺少的部分将替换为零.
Run Code Online (Sandbox Code Playgroud)1.2 - 2.3.4 := >=1.2.0 <=2.3.4如果在包含范围内提供了部分版本作为第二个版本,则接受以元组提供的部分开头的所有版本,但不会超过提供的元组部分.
Run Code Online (Sandbox Code Playgroud)1.2.3 - 2.3 := >=1.2.3 <2.4.0 1.2.3 - 2 := >=1.2.3 <3.0.0X-Ranges 1.2.x 1.X 1.2.**
X,x或*中的任何一个都可用于"替换"[major,minor,patch]元组中的一个数值.
Run Code Online (Sandbox Code Playgroud)* := >=0.0.0 (Any version satisfies) 1.x := >=1.0.0 <2.0.0 (Matching major version) 1.2.x := >=1.2.0 <1.3.0 (Matching major and minor versions)部分版本范围被视为X范围,因此特殊字符实际上是可选的.
Run Code Online (Sandbox Code Playgroud)"" (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.0Tilde Ranges~1.2.3~1.2~1
如果在比较器上指定了次要版本,则允许修补程序级更改.如果没有,则允许小级更改.
Run Code Online (Sandbox Code Playgroud)~1.2.3 := >=1.2.3 <1.(2+1).0 := >=1.2.3 <1.3.0 ~1.2 := >=1.2.0 <1.(2+1).0 := >=1.2.0 <1.3.0 (Same as 1.2.x) ~1 := >=1.0.0 <(1+1).0.0 := >=1.0.0 <2.0.0 (Same as 1.x) ~0.2.3 := >=0.2.3 <0.(2+1).0 := >=0.2.3 <0.3.0 ~0.2 := >=0.2.0 <0.(2+1).0 := >=0.2.0 <0.3.0 (Same as 0.2.x) ~0 := >=0.0.0 <(0+1).0.0 := >=0.0.0 <1.0.0 (Same as 0.x) ~1.2.3-beta.2 := >=1.2.3-beta.2 <1.3.0 Note that prereleases in the 1.2.3 version will be allowed, if they are greater than or equal到beta.2.因此,1.2.3-beta.4将被允许,但1.2.4-beta.2不会,因为它是不同的[主要,次要,补丁]元组的预发布.
插入符号范围^ 1.2.3 ^ 0.2.5 ^ 0.0.4
允许更改不会修改[major,minor,patch]元组中最左边的非零数字.换句话说,这允许版本1.0.0及更高版本的补丁和次要更新,版本0.X> = 0.1.0的补丁更新,以及版本0.0.X的更新.
许多作者将0.x版本视为x是主要的"突破性变化"指标.
当作者可以在0.2.4和0.3.0版本之间进行重大更改时,插入范围是理想的,这是一种常见做法.但是,它假定在0.2.4和0.2.5之间不会有突破性的变化.根据通常观察到的做法,它允许假定为加性(但不破坏)的变化.
Run Code Online (Sandbox Code Playgroud)^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.3-beta.2 := >=1.2.3-beta.2 <2.0.0 Note that prereleases in the 1.2.3 version will be allowed, if they are greater than or equal到beta.2.因此,1.2.3-beta.4将被允许,但1.2.4-beta.2不会,因为它是不同的[主要,次要,补丁]元组的预发布.^ 0.0.3-beta:=> = 0.0.3-beta <0.0.4请注意,只有0.0.3版本中的预发布版本大于或等于beta时才允许.因此,允许0.0.3-pr.2.
解析插入符号范围时,缺少的补丁值会消耗到数字0,但即使主要版本和次要版本都为0,也会允许该值内的灵活性.
Run Code Online (Sandbox Code Playgroud)^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如果主要版本为零,则缺少次要值和补丁值将减少为零,但也允许这些值内的灵活性.
Run Code Online (Sandbox Code Playgroud)^1.x := >=1.0.0 <2.0.0 ^0.x := >=0.0.0 <1.0.0
总结你的例子可能是
npm install package-name@"^2.1.x"
Run Code Online (Sandbox Code Playgroud)
主要.次要.补丁=1.0.3
major version= 1,\n minor version= 0,\n patch version=3
Major,minor并代表a 的patch不同。releasespackagetilde (~)并分别caret (^)指定要使用的patch版本minor。~1.0.3- 表示“到”install version 1.0.3 或“latest patch version例如” 1.0.6。^1.0.3- 表示“到”install version 1.0.3或“该latest minor”或“patch version例如” 1.4.0。npm package.json引用尚未\xe2\x80\x99t 版本的包1.0,使用该caret(^)符号只会获取patch version.小智 6
您可以使用以下两种方法:-
用最简单的术语来说,波浪号与最新的次要版本(中间数字)相匹配。~1.2.3 将匹配所有 1.2.x 版本,但会错过 1.3.0。
另一方面,插入符号更宽松。它会将您更新到最新的主要版本(第一个数字)。^1.2.3 将匹配包括 1.3.0 在内的任何 1.xx 版本,但会推迟 2.0.0。
http://fredkschott.com/post/2014/02/npm-no-longer-defaults-to-tildes/
| 归档时间: |
|
| 查看次数: |
6838 次 |
| 最近记录: |