package.json依賴管理dependencies中 ^ 和 ~ 的區(qū)別

pakage.json 中對(duì)引入依賴包版本進(jìn)行管理時(shí),dependencies中常??梢钥吹筋愃?^1.2.0 或 ~1.2.0 這樣的版本范圍指示。那么,這里的 ^ 和 ~ 具體表示什么含義呢。

詳細(xì)內(nèi)容可以查看npm的官方文檔

上面的鏈接中高級(jí)范圍語法一節(jié),表示版本范圍可以用的符號(hào)有 - x ~ ^

這里簡單把 ^ 和 ~ 的區(qū)別摘抄一下,備忘。
一個(gè)完整的版本號(hào)組表示為: [主要版本號(hào),次要版本號(hào),補(bǔ)丁版本號(hào)]

1. 用 ~ 指示范圍

如果指定了次要版本,允許補(bǔ)丁版本升級(jí)。如果沒有指定次要版本,允許次要版本升級(jí)。

能夠接受的版本范圍 說明
~1.2.3 1.2.3 <= version < 1.3.0
~1.2 1.2.0 <= version < 1.3.0
~1 1.0.0 <= version < 2.0.0
~0.2.3 0.2.3 <= version < 0.3.0
~0.2 0.2.0 <= version < 0.3.0
~0 0.0.0 <= version < 1.0.0
~1.2.3-beta.2 1.2.3-beta.2 <= version < 1.3.0 1.2.3版允許高于beta.2的beta版,但1.2.4-beta.2不被允許,因?yàn)槭菍儆诹硪粋€(gè)版本號(hào)組的beta版本。

2. 用 ^ 指定范圍

允許不會(huì)改變最左邊的不為零的版本號(hào)的版本提升,也就是說,1.0.0允許次要、補(bǔ)丁版本升級(jí),0.1.0允許補(bǔ)丁版本升級(jí),^0.0.x 不允許升級(jí)。

有許多開發(fā)者把 '0.x' 中的 'x' 改變作為重大改變的指示。

一個(gè)普遍的做法是,^ 適合使用在當(dāng)開發(fā)者從 0.2.4 升級(jí)到 0.3.0 可能會(huì)做出不兼容的改變時(shí)。一般情況下,假定了在0.2.4 到 0.2.5 不會(huì)有不兼容改變,可以有一些新增(但不改變兼容)的改變。

能夠接受的版本范圍 說明
^1.2.3 1.2.3 <= version < 2.0.0
^0.2.3 0.2.3 <= version < 0.3.0
^0.0.3 0.0.3 <= version < 0.0.4
^1.2.3-beta.2 1.2.3-beta.2 <= version < 2.0.0 允許1.2.3 版的高于beta-2 的beta版本
^0.0.3-beta.2 0.0.3-beta.2 <= version < 0.0.4 只允許0.0.3 版的高于beta-2 的版本

當(dāng)解析帶有^的版本范圍時(shí),補(bǔ)丁版本號(hào)缺少會(huì)補(bǔ) 0,但是會(huì)靈活的處理,即時(shí)主要、次要版本號(hào)都為 0 也可以。

能夠接受的版本范圍
^1.2.x 1.2.0 <= version < 2.0.0
^0.0.x 0.0.0 <= version < 0.1.0
^0.0 0.0.0 <= version < 0.1.0

當(dāng)次要、補(bǔ)丁版本號(hào)缺少時(shí)會(huì)當(dāng)作 0,但也會(huì)靈活處理,即時(shí)主版本號(hào)為 0 也可以 。

能夠接受的版本范圍
^1.x 1.0.0 <= version < 2.0.0
^0.x 0.0.0 <= version < 1.0.0

原文

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,781評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • 我要找怦然心動(dòng)的詩句 沒找到 于是我變成了詩人 我要找完美的文字配圖 沒找到 于是我變成了畫家 我要找愛不釋手的速...
    天野丟閱讀 152評(píng)論 0 1
  • 圖片by 一匙 楠哥 莫 昕宇純臻映像 大胖子 小妞 你要相信世界上一定會(huì)有一個(gè)你的愛人,無論你此刻正被光芒環(huán)繞...
    一癡傻人閱讀 497評(píng)論 0 2
  • 我自己的名字是初一時(shí)就設(shè)計(jì)好了??赡苁且?yàn)榭吹矫餍堑暮灻軒?,所以激發(fā)了自己想設(shè)計(jì)的欲望吧。但是,最初都只是自己在...
    wyw1227閱讀 1,338評(píng)論 16 4

友情鏈接更多精彩內(nèi)容