摘要:今天在此向大家推薦一種非常流行的版本號(hào)命名規(guī)則語(yǔ)義化版本。語(yǔ)義化版本約定修訂版本號(hào)代表在和之前接口不變的前提下修正了。就是專門用于語(yǔ)義化版本號(hào)檢查的庫(kù),其也是語(yǔ)義化版本標(biāo)準(zhǔn)的制定者。
NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)。
軟件的命運(yùn)就是不斷維護(hù)、更新、迭代,所以我們用版本號(hào)來(lái)區(qū)分一個(gè)軟件的不同時(shí)期和形態(tài),版本號(hào)的命名方式有各種各樣,有的以小數(shù)表示(幾點(diǎn)幾),有的以日期表示,有的以代碼提交Hash表示等等。
今天在此向大家推薦一種非常流行的版本號(hào)命名規(guī)則:語(yǔ)義化版本。
所有NPM包都是用語(yǔ)義化版本號(hào)管理的,其格式如下
主版本號(hào).次版本號(hào).修訂號(hào)
比如,2.1.12,代表主版本號(hào)為2,次版本號(hào)是1,修訂版本號(hào)是12。語(yǔ)義化版本約定:
修訂版本號(hào)代表在和之前接口不變的前提下修正了BUG。
次版本號(hào)變化說(shuō)明產(chǎn)品增加了新特性,接口可能已經(jīng)發(fā)生了變化。
主版本號(hào)變化代表產(chǎn)品已經(jīng)發(fā)生了很大的改變,與之前版本不兼容。
semver在項(xiàng)目中,我們也許會(huì)在某些情況下對(duì)版本號(hào)進(jìn)行檢查、比較等操作。比如一個(gè)典型案例,在服務(wù)端判斷APP客戶端是否需要升級(jí)。
semver 就是專門用于語(yǔ)義化版本號(hào)檢查的庫(kù),其也是語(yǔ)義化版本標(biāo)準(zhǔn)的制定者。
const semver = require("semver") semver.valid("1.2.3") // "1.2.3" semver.valid("a.b.c") // null semver.clean(" =v1.2.3 ") // "1.2.3" semver.satisfies("1.2.3", "1.x || >=2.5.0 || 5.0.0 - 7.2.3") // true semver.gt("1.2.3", "9.8.7") // false semver.lt("1.2.3", "9.8.7") // true參考資料
https://github.com/npm/node-s...
https://semver.org/lang/zh-CN/
歡迎關(guān)注公眾號(hào):梁興臣每天了解一個(gè)NPM庫(kù),一年后成為Node.js高手
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92750.html
摘要:酷庫(kù),每天兩分鐘,了解一個(gè)流行庫(kù)。在酷庫(kù)中,我們了解到了數(shù)據(jù)模式驗(yàn)證,以及庫(kù)。是語(yǔ)義化的對(duì)象數(shù)據(jù)模式驗(yàn)證庫(kù),所謂語(yǔ)義化,是指其方法名能夠明確表達(dá)其含義。 NPM酷庫(kù),每天兩分鐘,了解一個(gè)流行NPM庫(kù)?!?在NPM酷庫(kù)042中,我們了解到了JSON Schema數(shù)據(jù)模式驗(yàn)證,以及ajv庫(kù)。今天我們來(lái)學(xué)習(xí)另一個(gè)對(duì)象數(shù)據(jù)驗(yàn)證的庫(kù)joi。 joi joi 是語(yǔ)義化的對(duì)象數(shù)據(jù)模式驗(yàn)證庫(kù),所謂語(yǔ)義...
摘要:為什么為什么不是為什么不是為什么不是為什么不是嚴(yán)格的指導(dǎo)原則有助于為版本號(hào)提供意義。此外,如果你有打破當(dāng)前的,這同樣表示你需要升級(jí)你的主版本號(hào)了。 前提 何為版本?版本即語(yǔ)義版本控制( Semantic version 后面簡(jiǎn)稱為 SemVer )是一種版本控制系統(tǒng),在過(guò)去幾年中一直在不斷發(fā)展。 隨著每天都在構(gòu)建新的插件,插件,擴(kuò)展和庫(kù),擁有通用的軟件開(kāi)發(fā)項(xiàng)目版本化方法是一件好事,可以...
check-versions.js //定制控制臺(tái)日志的輸入樣式 var chalk = require(chalk) // 加載語(yǔ)義化版本測(cè)試庫(kù) var semver = require(semver) // 引入package.json文件 var packageConfig = require(../package.json) function exec(...
摘要:可以通過(guò)查詢對(duì)映模塊的信息安裝機(jī)制輸入命令并敲下回車后,會(huì)經(jīng)歷如下幾個(gè)階段以為例執(zhí)行工程自身當(dāng)前工程如果定義了鉤子此時(shí)會(huì)被執(zhí)行。在以前會(huì)嚴(yán)格按照依賴樹(shù)的結(jié)構(gòu)進(jìn)行安裝,因此會(huì)造成模塊冗余。當(dāng)發(fā)現(xiàn)有重復(fù)模塊時(shí),則將其丟棄。 使用NPM安裝的時(shí)候會(huì)經(jīng)常出現(xiàn)包沖突(比如多個(gè)主模塊的子模塊版本不一致等),導(dǎo)致在開(kāi)發(fā)過(guò)程中會(huì)遇到各種或大或小的問(wèn)題。所有在這會(huì)介紹以下內(nèi)容: NPM 主要安裝方式 ...
摘要:可以通過(guò)查詢對(duì)映模塊的信息安裝機(jī)制輸入命令并敲下回車后,會(huì)經(jīng)歷如下幾個(gè)階段以為例執(zhí)行工程自身當(dāng)前工程如果定義了鉤子此時(shí)會(huì)被執(zhí)行。在以前會(huì)嚴(yán)格按照依賴樹(shù)的結(jié)構(gòu)進(jìn)行安裝,因此會(huì)造成模塊冗余。當(dāng)發(fā)現(xiàn)有重復(fù)模塊時(shí),則將其丟棄。 使用NPM安裝的時(shí)候會(huì)經(jīng)常出現(xiàn)包沖突(比如多個(gè)主模塊的子模塊版本不一致等),導(dǎo)致在開(kāi)發(fā)過(guò)程中會(huì)遇到各種或大或小的問(wèn)題。所有在這會(huì)介紹以下內(nèi)容: NPM 主要安裝方式 ...
閱讀 2814·2021-11-24 09:39
閱讀 2789·2021-09-23 11:45
閱讀 3414·2019-08-30 12:49
閱讀 3364·2019-08-30 11:18
閱讀 1930·2019-08-29 16:42
閱讀 3351·2019-08-29 16:35
閱讀 1332·2019-08-29 11:21
閱讀 1926·2019-08-26 13:49