如何从相对版本中获取确切的最新npm版本?

问题描述 投票:0回答:1

我希望能够获得与相对语义版本匹配的npm的最新发布版本。

例如,我想运行以下内容:

npm -v 6.12.x

然后返回与之匹配的确切最新版本:

=> 6.12.1

我已经浏览了一些文档和命令,或者认为使用npm可以实现,但是如果没有安装另一个全局依赖项,我看不到任何有效的方法。

npm semantic-versioning
1个回答
0
投票

npm没有提供内置功能来完全满足您的要求。

但是,npm确实提供了npm-view命令。它的文档指出以下内容:

如果提供了版本范围,则将为软件包的每个匹配版本打印数据。这将显示每个匹配版本的yui3需要哪个版本的jsdom:

npm view yui3@'>0.5.4' dependencies.jsdom

因此,可以通过一些其他Bash实用程序来解析输出来满足您的要求。

考虑运行以下复合命令:

npm view npm@'6.12.x' version | tail -n 1 | cut -d "'" -f2

说明

以下说明上述复合命令中的组成部分:

  1. [npm view npm@'6.12.x' version

    此部分利用npm view命令返回给定范围内的所有版本,即6.12.x

    独立运行这些部件会将以下内容打印到您的控制台:

    [email protected] '6.12.0'
    [email protected] '6.12.1'
    
  2. [| tail -n 1

    然后使用tail选项将先前显示的结果通过管道传输到tail,以便仅打印最后一行。

    正在运行:

    -n 1

    打印:

    npm view npm@'6.12.x' version | tail -n 1

  3. [[email protected] '6.12.1'

    然后,使用| cut -d "'" -f2选项并使用单引号作为定界符,将先前显示的结果通过管道传递到cut。然后,cut部分选择第二项。

    运行完整的复合命令:

    -d

    打印您想要的结果:

    -f2


Semver波浪号(npm view npm@'6.12.x' version | tail -n 1 | cut -d "'" -f2 )和插入号(6.12.1)范围。

您还可以通过上述复合命令指定波浪线或插入号范围。

示例:

  • 指定波浪线范围:

    ~

    打印:

    ^

  • 指定插入符范围:

    npm view npm@'~4.0.0' version | tail -n 1 | cut -d "'" -f2
                  ^^^^^^
    

    打印:

    4.0.5

© www.soinside.com 2019 - 2024. All rights reserved.