![](/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.