如何在npm上安装软件包的最新次要版本?

如何在npm上安装软件包的最新次要版本?,npm,semantic-versioning,Npm,Semantic Versioning,例如: 我已经安装了package name的2.0.0版本 与主要版本相同的最新次要版本是2.1.2 最新的主要版本(如果我运行npm安装包,就会安装它)-name@latestis4.3.0 如何安装没有重大更改的最新软件包?Npm使用semver,因此您可以使用多种方法来接近您的目标 看一下办公室,你可以使用以下内容: npm install package-name@">=2.1.2 <2.2.0" 您可以使用以下两种方法:- 用最简单的术语来说,波浪线匹配最新的次要版

例如:

  • 我已经安装了
    package name
    2.0.0
    版本
  • 与主要版本相同的最新次要版本是
    2.1.2
  • 最新的主要版本(如果我运行
    npm安装包,就会安装它)-name@latest
    is
    4.3.0

如何安装没有重大更改的最新软件包?

Npm使用semver,因此您可以使用多种方法来接近您的目标

看一下办公室,你可以使用以下内容:

npm install package-name@">=2.1.2 <2.2.0"

您可以使用以下两种方法:-

用最简单的术语来说,波浪线匹配最新的次要版本 (中间数字)。~1.2.3将与所有1.2.x版本匹配,但将 小姐1.3.0

另一方面,插入符号更为轻松,它将更新您的 最新的主要版本(第一个编号)。^1.2.3将匹配 包括1.3.0在内的任何1.x.x版本,但将推迟到2.0.0


使用
npm安装包名@“我也遇到了同样的问题,而且,来自Java&Maven环境,我会首先搜索每个特定的包

然后,我会查看软件包的“版本”选项卡,了解更多关于其版本的信息。我假设主要版本会带来突破性的更改,而次要版本只包含代码改进和错误修复,至少这是惯例。但阅读手册总是有帮助的:)


有时,版本谓词可以这样组合:codelyzer@5.2.2需要@angular/compiler@>=2.3.1 9.0.0-beta 9.1.0-beta 9.2.0-beta的对等版本

主要版本
=
1
次要版本
=
0
补丁版本
=
3

  • Major
    minor
    patch
    代表了
    包的不同
    版本
  • tilde(~)
    caret(^)
    分别指定要使用的
    patch
    minor
    版本
  • ~1.0.3
    -指安装
    版本1.0.3
    最新的
    补丁
    版本
    ,如
    1.0.6
  • ^1.0.3
    -指
    安装
    版本
    1.0.3
    最新版本
    次要版本
    补丁
    版本
    ,如
    1.4.0
  • 如果
    npm
    package.json
    引用的包尚未达到
    1.0版
    ,则使用
    插入符号(^)
    符号将仅获取
    补丁
    版本

“插入符号会将您更新到最新的主版本(第一个数字)。”与“^1.2.3会…推迟到2.0.0。”-它会推迟到2.0.0主版本吗?正如我所说的,如果您希望版本为2.x.x,这是次版本,您可以这样做^2.1.2,这是最新的次版本。它不会下载3.x.x或4.x.x。我理解,但那些句子仍然冲突。你试过了吗?你能和我分享一下软件包的名称吗?这样我就可以试一下,给你一个合适的解决方案。同意@mikemacana-你的句子是矛盾的。从另一个答案来看,它实际上比这更复杂。我希望有像
npm安装包这样的东西-name@latest-非破坏性
(或者说是纱线),但“3.0.0之前的最新版本”仍然是迄今为止我得到的最好答案。谢谢这应该是勾选的答案
1.2.3 - 2.3.4 := >=1.2.3 <=2.3.4
1.2 - 2.3.4 := >=1.2.0 <=2.3.4
1.2.3 - 2.3 := >=1.2.3 <2.4.0
1.2.3 - 2 := >=1.2.3 <3.0.0
* := >=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)
"" (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.0
~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
^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
^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
^1.x := >=1.0.0 <2.0.0
^0.x := >=0.0.0 <1.0.0
npm install package-name@"^2.1.x"