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

2022-07-04 21:36:10 字數 449 閱讀 8995

你會發現很多專案的依賴包版本號前面會加上~,或者是^,以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檔案;~和^則可以解決這個問題。

但是需要注意版本更新可能比較大,會造成專案**錯誤,比如這篇文章(的問題就是因為package.json使用

1.5.7造成的,1.6版本的包與現有**不相容。

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

**自【

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

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!你會發現很多專案的依賴包版本號前面會加上 或者是 以angular2為例 那麼 和 的作用和區別是什麼呢?詳細可參考 那麼該如何選擇呢?當然你可以指定特定的版本號,直接寫1.2.3,前面什麼字首都沒有,這樣固然沒問題,但是如果依賴包發布新版本修復了...

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

你會發現很多專案的依賴包版本號前面會加上 或者是 以angular2為例 那麼 和 的作用和區別是什麼呢?詳細可參考 那麼該如何選擇呢?當然你可以指定特定的版本號,直接寫1.2.3,前面什麼字首都沒有,這樣固然沒問題,但是如果依賴包發布新版本修復了一些小bug,那麼需要手動修改package.jso...

秒懂NPM依賴包版本號 和 的區別

你是不是也和我一樣,總忘記 和 的區別?哈哈,或者你壓根就不知道?今天盯著semver的api看了很久 原始碼就不看了,真是的又長又醜 感覺是看到它的規律了。我們常見的大概有這些 以上的大概可以覆蓋我們常見的一些情況了,下面分析一下semver是怎麼判斷的。1 首先我們把版本分為a b c xx四個...