1. version
每個(gè)npm包都有一個(gè)package.json谷誓,如果要發(fā)布包的話耸峭,package.json里面的version字段就是決定發(fā)包的版本號(hào)了贿条。
version字段是這樣一個(gè)結(jié)構(gòu): ‘0.0.1’叨叙,是有三位的版本號(hào)涨冀。分別是對應(yīng)的version里面的:major
, minor
, patch
。
也就是說當(dāng)發(fā)布大版本的時(shí)候會(huì)升級(jí)為 1.0.0
债沮,小版本是0.1.0
炼吴,一些小修復(fù)是0.0.2
。
2. npm version
為了方便用戶更改版本號(hào)疫衩,npm有npm version
這個(gè)命令來自動(dòng)更改版本號(hào)硅蹦,同時(shí)幫忙commit.
比如說 當(dāng)前版本是 1.1.1
,當(dāng)執(zhí)行 npm version patch -m '[patch]'
的時(shí)候闷煤,會(huì)自動(dòng)把package.json里面的version
改為1.1.2
童芹,同時(shí)git會(huì)多一個(gè)commit log [patch]
,這次改動(dòng)便是更改package.json。
如果執(zhí)行了prepatch鲤拿,版本號(hào)會(huì)從1.1.1
變成 1.1.2-0
- 我們稱版本號(hào)的三位分別是
大號(hào).中號(hào).小號(hào)-預(yù)發(fā)布號(hào)
3. major | minor | patch | premajor | preminor | prepatch | prerelease
npm version | 功能 |
---|---|
major | - 如果沒有預(yù)發(fā)布號(hào)假褪,則直接升級(jí)一位大號(hào),其他位都置為0 - 如果有預(yù)發(fā)布號(hào): -- 中號(hào)和小號(hào)都為0皆愉,則不升級(jí)大號(hào)嗜价,而將預(yù)發(fā)布號(hào)刪掉。即2.0.0-1變成2.0.0幕庐,這就是預(yù)發(fā)布的作用 -- 如果中號(hào)和小號(hào)有任意一個(gè)不是0久锥,那邊會(huì)升級(jí)一位大號(hào),其他位都置為0异剥,清空預(yù)發(fā)布號(hào)瑟由。即 2.0.1-0變成3.0.0 |
minor | - 如果沒有預(yù)發(fā)布號(hào),則升級(jí)一位中號(hào)冤寿,大號(hào)不動(dòng)歹苦,小號(hào)置為空 - 如果有預(yù)發(fā)布號(hào): -- 如果小號(hào)為0,則不升級(jí)中號(hào)督怜,將預(yù)發(fā)布號(hào)去掉 -- 如果小號(hào)不為0殴瘦,同理沒有預(yù)發(fā)布號(hào) |
patch | - 如果沒有預(yù)發(fā)布號(hào):直接升級(jí)小號(hào),去掉預(yù)發(fā)布號(hào) - 如果有預(yù)發(fā)布號(hào):去掉預(yù)發(fā)布號(hào)号杠,其他不動(dòng) |
premajor | - 直接升級(jí)大號(hào)蚪腋,中號(hào)和小號(hào)置為0,增加預(yù)發(fā)布號(hào)為0 |
preminor | - 直接升級(jí)中號(hào)姨蟋,小號(hào)置為0屉凯,增加預(yù)發(fā)布號(hào)為0 |
prepatch | - 直接升級(jí)小號(hào),增加預(yù)發(fā)布號(hào)為0 |
prerelease | - 如果沒有預(yù)發(fā)布號(hào):增加小號(hào)眼溶,增加預(yù)發(fā)布號(hào)為0 - 如果有預(yù)發(fā)布號(hào)悠砚,則升級(jí)預(yù)發(fā)布號(hào) |