如何安装最新版本的npm包?

9

我应该如何安装最新版本的npm包?'@latest'似乎不能获取最新版本 - 我猜它可能是指最新的稳定版本之类的。

因为我似乎找不到任何相关信息,所以我一直在使用一个技巧:

npm i extract-text-webpack-plugin@X 

“X”导致它失败并转储所有可能的版本,然后我复制并粘贴正确的版本而不是“X”。有点荒谬。
我尝试过像“latest-version”这样的第三方包,但它们都无法获取最新版本。
似乎没有官方方法来做到这一点。例如,在撰写本文时,“extract-text-webpack-plugin”的最新版本是“2.0.0-beta.4”。但是执行以下操作:
npm i extract-text-webpack-plugin@latest

将安装“1.0.1”

我可以通过以下方式查看最新版本

npm info pkg versions --json (without --json it will cut off when there are many versions)

由于缺乏实际工具,我猜这得用一些grep工作。

3
为什么会被踩呢?能不能回答一个非常明确的问题呢?我快要离开这个被喷的网站了。 - cyberwombat
https://nodejs.dev/learn/update-all-the-nodejs-dependencies-to-their-latest-version/ - a2k42
2个回答

4

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

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

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

例如,一个项目可能选择有多个开发流,并为每个流使用不同的标签,例如stable、beta、dev、canary。

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

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

如果您想要beta版本,那么请从GitHub安装,或显式地使用标签。
$ npm install webpack/extract-text-webpack-plugin

通过阅读手册可以更加清楚地了解。

更加明确的解释:

latest是一个隐式标签,附加在任何未使用显式标签(--tag)发布的软件包的任何已发布版本上。

安装xyz@latest只需在注册表中查找被标记为latest的发布版本。对于此软件包,那就是发布版1.0.1就是这样。这里没有什么特别之处。@latest不会拉取到最近发布到npm的版本

列出的beta版本有不同的标记。显然,它们中没有一个被标记为latest,因此尝试使用@latest获取其中一个是没有意义的。

来自注册表:

'dist-tags': { latest: '1.0.1', beta: '2.0.0-beta.4' }

再次强调,如果需要最新版本,请使用GitHub发布,或者明确使用特定的版本/标签。
$ npm install extract-text-webpack-plugin@beta

这是专门为您制作的:

将其压缩成一个shell脚本,然后您就可以开始了:

$ npm install extract-text-webpack-plugin@$(recent-version extract-text-webpack-plugin)

除了通过npm可用的最新版本是2.0.0-beta.4,可以通过隐式指定该版本进行安装。而且,如您所见,@latest将无法获取该版本。npm列出2.0.0-beta.4的事实清楚地表明它知道这个版本的存在。但我感觉它使获取该版本变得更加困难了。 - cyberwombat
尽管我的上一条评论被删除了,我还是要重申:你需要更仔细地阅读手册。我感觉自己像个破碎的唱片在向你解释这个问题。被标记为“最新”的并不意味着它是最近发布的版本。 - Oka
那个最后的Shell脚本就是我在寻找的。谢谢。 - cyberwombat

1
只要你安装了包,就可以使用“npm update”命令进行更新:
npm update <package>

呃..不是的。首先问题是关于安装,其次“更新”也有完全相同的问题。它无法更新到最新版本。不过还是谢谢。 - cyberwombat
没有错误。询问我是否在文档中忽略了什么。据我所知,这似乎是不可能的,这很奇怪。 - cyberwombat
尝试运行 npm uninstall extract-text-webpack-plugin 然后运行 npm install extract-text-webpack-plugin,看看会发生什么。 - baranskistad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接