![](/img/trans.png)
[英]How does `npm install npm@latest-2` resolve package version
[英]How to install the latest possible version of an npm package
如何安装npm软件包的最新可用版本? '@latest'肯定不会获取最新的-我认为这意味着最新的马stable之类的东西。
我使用骇客已有一段时间,因为我似乎找不到任何相关资讯:
npm i extract-text-webpack-plugin@X
“ X”导致它失败并转储所有可能的版本,然后在其中复制并粘贴正确的版本而不是“ X”。 有点可笑。
我尝试了“最新版本”之类的第三方软件包,但它们都未能获得最新版本。
似乎没有官员这样做。 例如,在撰写本文时, 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的工作。
版本1.0.1
是该软件包的“最新”版本-至少发布到npm注册表( 标记为latest
)
来自cli/dist-tag
的文档。 强调我的。
标签可用于提供别名而不是版本号。
例如,一个项目可能选择具有多个开发流,并为每个流使用不同的标签,例如稳定版,beta版,dev版,canary版。
默认情况下,npm使用最新标签来标识软件包的当前版本,npm install(不带任何@或@指定符)将安装最新标签。 通常,项目仅将最新标签用于稳定版本,而将其他标签用于不稳定版本,例如prereleases 。
默认情况下,除了最新的标签外,没有标签对npm本身有特殊的意义。
如果需要beta版本 ,请从GitHub安装,或显式使用标记。
$ npm install webpack/extract-text-webpack-plugin
更明确的是:
latest
是隐式标签,它附加到未使用显式标签( --tag
)发布的任何发行版软件包中。
安装xyz@latest
只是在注册表中查找标记为latest
的发行版。 对于此软件包,版本为1.0.1
。 就是这样 。 这里没有什么特别的事情。 @latest
不会将最新版本发布到npm
列为测试版的版本具有不同的标记。 显然,它们都没有被标记为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 update
:
npm update <package>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.