如何安装最新版本的 npm 包

cyb*_*bat 5 node.js npm

如何安装 npm 包的最新可用版本?'@latest' 肯定不会获取最新的 - 我认为这意味着最新的稳定版或其他东西。

我一直在使用 hack 一段时间,因为我似乎找不到任何关于此的信息:

npm i extract-text-webpack-plugin@X 
Run Code Online (Sandbox Code Playgroud)

“X”导致它失败并转储所有可能的版本,然后我复制并粘贴正确的版本而不是“X”。有点可笑。

我已经尝试过诸如“最新版本”之类的 3rd 方软件包,但它们都无法获得最新版本。

似乎没有官方这样做。例如在撰写本文时,extract-text-webpack-plugin的最新版本是2.0.0-beta.4。但是这样做:

npm i extract-text-webpack-plugin@latest
Run Code Online (Sandbox Code Playgroud)

将安装“1.0.1”

我可以通过执行查看最新版本

npm info pkg versions --json (without --json it will cut off when there are many versions)
Run Code Online (Sandbox Code Playgroud)

由于缺乏实际工具,我想这将是一些 grep 工作。

Oka*_*Oka 5

Version该包的“最新”版本 - 至少发布到 npm 注册表(标记为)1.0.1 latest

来自 的文档cli/dist-tag。强调我的。

标签可用于提供别名而不是版本号。

例如,一个项目可能选择具有多个开发流,并为每个流使用不同的标签,例如稳定、测试版、开发、金丝雀。

默认情况下,npm 使用latest 标签来标识软件包的当前版本,并且npm install(不带任何@ 或@ 说明符)安装latest 标签。通常,项目仅对稳定版本使用latest标签,对不稳定版本(例如预发布版本)使用其他标签

默认情况下,除了latest之外,没有任何标签对npm本身有任何特殊意义。

如果您想要beta 版本,请从 GitHub 安装,或明确使用标签。

$ npm install webpack/extract-text-webpack-plugin
Run Code Online (Sandbox Code Playgroud)

通过阅读手册,这一点已经很清楚了。

更清楚的是:

latest是一个隐式标记,附加到使用显式标记 ( )发布的包的任何已发布版本--tag

安装xyz@latest只需查找注册表中标记为 的版本即可。latest就这个包而言,就是release 1.0.1就是这样。这里没有什么特别的事情发生。@latest不拉取发布到的最新版本npm

列为测试版的版本有不同的标记。显然它们都没有被标记为latest,因此尝试使用@latest来获取一个是毫无意义的。

从注册表中:

'dist-tags': { latest: '1.0.1', beta: '2.0.0-beta.4' }
Run Code Online (Sandbox Code Playgroud)

再次强调,使用 GitHub 版本作为前沿,或者明确使用版本/标签。

$ npm install extract-text-webpack-plugin@beta
Run Code Online (Sandbox Code Playgroud)

给你,专门为你准备的:

将其压缩为 shell 脚本,然后就可以开始了:

$ npm install extract-text-webpack-plugin@$(recent-version extract-text-webpack-plugin)
Run Code Online (Sandbox Code Playgroud)