NPM依賴包版本號~和^的區別及最佳實踐


你會發現很多項目的依賴包版本號前面會加上~,或者是^,以Angular2為例:

  • 那么~和^的作用和區別是什么呢?

~會匹配最近的小版本依賴包,比如~1.2.3會匹配所有1.2.x版本,但是不包括1.3.0
^會匹配最新的大版本依賴包,比如^1.2.3會匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
詳細可參考http://stackoverflow.com/questions/22343224/whats-the-difference-between-tilde-and-caret-in-package-json

那么該如何選擇呢?當然你可以指定特定的版本號,直接寫1.2.3,前面什么前綴都沒有,這樣固然沒問題,但是如果依賴包發布新版本修復了一些小bug,那么需要手動修改package.json文件;~和^則可以解決這個問題。

但是需要注意^版本更新可能比較大,會造成項目代碼錯誤,比如這篇文章(http://blog.csdn.net/u014291497/article/details/54427103)的問題就是因為package.json使用^1.5.7造成的,1.6版本的包與現有代碼不兼容

所以建議使用~來標記版本號,這樣可以保證項目不會出現大的問題,也能保證包中的小bug可以得到修復。

參考鏈接:Node and Npm Version Numbering: Guide and Best Practices

轉載自【https://www.cnblogs.com/lmf-techniques/articles/7453505.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM