發(fā)布者認(rèn)證信息(營業(yè)執(zhí)照和身份證)未完善,請登錄后完善信息登錄
伊人精品久久久久中文,伊秀女性网

欧洲精品久久久AV无码电影_人妻AV无码系列一区二区三区_日本55丰满熟妇厨房伦_日本公与熄乱理在线播放_日本乱偷人妻中文字幕_日本少妇又色又爽又高潮_三级特黄60分钟在线观看_色欲久久人妻内射_少妇人妻偷人精品视蜜桃_亚洲AV高清一区二区三区尤物,八戒,八戒影视剧在线观看免费,日韩精品一区二区三区中文,波多野VA无码中文字幕

愛品網(wǎng)

愛品網(wǎng) IPNO.CN

b2b免費(fèi)推廣平臺(tái)

掃掃有驚喜

 
 
 
當(dāng)前位置: 首頁 » 資訊 » 電子商務(wù) » 正文

關(guān)于 Composer 版本約束表達(dá)式的使用

放大字體  縮小字體 發(fā)布日期:2021-12-08 07:00:01  瀏覽次數(shù):84
核心提示:首先,,我們來了解一個(gè)東西:語義化版本版本格式:主版本號.次版本號.修訂號,,版本號遞增規(guī)則如下: 主版本號:當(dāng)你做了不兼容的


首先,,我們來了解一個(gè)東西:語義化版本

版本格式:主版本號.次版本號.修訂號,版本號遞增規(guī)則如下: 主版本號:當(dāng)你做了不兼容的 API 修改,, 次版本號:當(dāng)你做了向下兼容的功能性新增,, 修訂號:當(dāng)你做了向下兼容的問題修正。 先行版本號及版本編譯信息可以加到“主版本號.次版本號.修訂號”的后面,,作為延伸,。

語義化版本一般我們使用 3 個(gè)部分來表示一個(gè)版本,例如:1.4.23,,1 為主版本號,,4 為次版本號,23 為修訂號或者補(bǔ)丁版本號,。當(dāng)然你肯定也見過 1.0.0-alpha1 這樣在后面添加修飾符號來表示先行版本,。

那在 composer 使用過程中我們通常會(huì)有這幾種寫法:

不限定版本

極不推薦這樣玩哦

使用 * 號來表示版本的時(shí)候,composer 會(huì)根據(jù)你配置中的 minimum-stability 的值情況來決定安裝最新的 dev 還是 stable 版本,。 比如:

    "require": {
        "overtrue/wechat": "*"
    }

根據(jù)上面語義化版本的定義,,這樣寫就相當(dāng)于允許大版本的安裝,那你的代碼在 composer 更新依賴后可能就跑不起來了(如果第三方包作者做了大版本更新),。

使用 dev- 前綴加分支名

我們在自己開發(fā)一個(gè)包的時(shí)候,經(jīng)常會(huì)用 dev-master 或者 dev-develop來指定版本,,它表示使用該分支下最新的提交,。

比如:

    "require": {
        "overtrue/wechat": "dev-master"
    }

這個(gè)也是不推薦在生產(chǎn)環(huán)境使用的,因?yàn)樗鋵?shí)與 * 沒有太大的差別,,不過 * 在 minimum-stability 為 stable 時(shí)是安裝最新的穩(wěn)定版,。但是二者都無法保證 API 兼容性。

使用 ~ 約束符鎖定小版本的方式

這種方式比較常用,,也是比較安全的,,比如我們希望安裝 >= 1.2 并且 < 2.0 的版本時(shí),根據(jù)語義化版本的定義,,次版本號的變化是新增功能,,所以 API 是穩(wěn)定的,也就是可以安全更新的,。 你可以寫成:

    "require": {
        "overtrue/wechat": "~1.2"
    }

如果你希望次版本都不要更新,,只允許修訂版本(補(bǔ)丁版本)的變化,>= 1.1.15 并且 < 1.2.0,,則寫成:

    "require": {
        "overtrue/wechat": "~1.1.15"
    }

所以,,你應(yīng)該看出規(guī)律了,~ 的作用是允許表達(dá)式中最后一位變到最大值,,~1.1 表示可以為 大于等于 1.1 的任何版本,,比如 1.1.0,、1.2.0、1.3.5 ,、1.99.9999,、 1.9999.999999 都可以安裝,但是不能安裝 2.0.0,, 同理,,~1.1.2 表示 大于等于 1.1.2 的任何版本,比如 1.1.2,、1.1.3,、1.1.99、 1.1.9999 都可以安裝,。

使用 ^ 約束符鎖定大版本

上面 ~ 表示最后一位可變,,前面幾位都不可變,那 ^ 的作用不一樣的是:^ 鎖定不允許變的第一位,,其實(shí)學(xué)過正則的同學(xué)都知道 ^ 表示起始,,^a 表示以 a 開頭的全部。

所以,, ^1.2 表示任意大于等于 1.2 的 1.x.x 版本,,比如 1.2.0、1.2.1,、1.3.0,、1.9.99999 等。只要前面的 1 并且大于 ^ 后面指定的 1.2都滿足條件,。

鎖定版本范圍

有時(shí)候我們的使用場景要求只能安裝某些版本范圍內(nèi)的時(shí)候,,可以使用 >、<,、>=,、<=、| 這些符號來組合,,比如:>= 1.3 <1.6,、>=1.3 | >=1.7、3.0|4.0 等,。這樣的使用場景并不多,,根據(jù)你的情況來調(diào)整用法就好。

最后就是使用具體版本號

使用 =1.2.34 或者 1.2.34 都是指定了具體的版本號,, composer 不會(huì)考慮檢查新版本來安裝,。

注意

如果你的版本是 1.0 以下,0.0.1,0.9.99999 等這樣的版本的時(shí)候,, ^的作用與 ~ 一樣,,也就是說:

^0.0.3 表示:>=0.0.3 < 0.0.4

所以需要注意這個(gè)問題,之所以這樣設(shè)計(jì)是有原因的:主版本號為零(0.y.z)的軟件處于開發(fā)初始階段,,一切都可能隨時(shí)被改變,。這樣的公共 API 不應(yīng)該被視為穩(wěn)定版。

所以不要掉進(jìn)這個(gè)坑哦,。

總結(jié)

無論你是包的作者,,還是使用者,正確使用版本是非常重要的,,尤其對于有一定使用量的包作者來講,,嚴(yán)格遵守語義化版本的規(guī)范是對你的用戶負(fù)責(zé)。最后引入 semver.org 官網(wǎng)的一句話:

記住,, 語義化的版本控制就是透過版本號的改變來傳達(dá)意義,。若這些改變對你的使用者是重要的,那就透過版本號來向他們說明,。


免責(zé)聲明:[關(guān)于 Composer 版本約束表達(dá)式的使用]信息是由該公司[愛品網(wǎng)]自行發(fā)布,,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性,。[愛品網(wǎng)]僅列示上述信息,,上述信息描述僅代表信息發(fā)布日的情況,不擔(dān)保該信息的準(zhǔn)確性,,完整性和及時(shí)性,,也不承擔(dān)瀏覽者的任何商業(yè)風(fēng)險(xiǎn)。
本產(chǎn)品網(wǎng)址 : http://10dcg.com/news/i38260.html 可發(fā)送到QQ/微信/微博/博客等平臺(tái)來推廣此信息
 

 

網(wǎng)站首頁 | 付款方式 | 關(guān)于我們 | 信息刪除 | 聯(lián)系方式 | 服務(wù)條款 | 版權(quán)隱私 | 網(wǎng)站地圖 | 專題 | 排名推廣 | 廣告服務(wù) | 積分換禮 | 網(wǎng)站留言 | RSS訂閱 | 鄂ICP備14015623號-2

愛品網(wǎng)是一個(gè)開放的平臺(tái),,信息全部為用戶自行注冊發(fā)布!并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,,需用戶自行承擔(dān)信息的真實(shí)性,,圖片及其他資源的版權(quán)責(zé)任! 本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。

如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,,請聯(lián)系: 473199705@QQ.COM

?2012-2021愛品網(wǎng) 免費(fèi)信息發(fā)布平臺(tái),,免費(fèi)推廣平臺(tái),免費(fèi)B2B網(wǎng)站愛品網(wǎng) 10dcg.com
免責(zé)聲明:本站所有信息由各公司自行發(fā)布,請?jiān)诮灰浊按_認(rèn)真實(shí)合法性,,本站不承擔(dān)任何交易及知識產(chǎn)權(quán)侵權(quán)的法律責(zé)任! 鄂公網(wǎng)安備 42018502005275