1. 程式人生 > >NPM依賴包版本號~和^的區別及最佳實踐

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

你會發現很多專案的依賴包版本號前面會加上~,或者是^,以Angular2為例:
這裡寫圖片描述

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

  • ~會匹配最近的小版本依賴包,比如~1.2.3會匹配所有1.2.x版本,但是不包括1.3.0
  • ^會匹配最新的大版本依賴包,比如^1.2.3會匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0

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

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

或者版本號寫*,這意味著安裝最新版本的依賴包,但缺點同上,可能會造成版本不相容,慎用!