5.2 npm 版本知識(shí)總結(jié)

2021-08-21 16:53 更新

1. npm 發(fā)布包的版本指定規(guī)則

使用 Npm 發(fā)布一個(gè)包的時(shí)候,往往要遵循 x.y.z 的規(guī)則,發(fā)布的第一個(gè)版本一般為 1.0.0。

  • z 補(bǔ)丁號(hào)。修改某個(gè)功能的 Bug 時(shí),z 值 +1 變成 1.0.1;
  • y 小版本號(hào)。增加一個(gè)新功能,且不影響已有功能,y 值 +1 變成 1.1.0;
  • x 大版本號(hào)。引入新的變化,破壞向后兼容,x 值 +1 變成 2.0.0。

2. 關(guān)于向后兼容與向前兼容

向前兼容和向后兼容可以用下面這個(gè)例子方便理解。

  • 向后兼容:Windows 10要能運(yùn)行為Windows 3.1開(kāi)發(fā)的程序;
  • 破壞向后兼容:新版本的系統(tǒng)不能運(yùn)行老版本系統(tǒng)上的程序,可以理解為整容的跟以前完全不一樣了;
  • 向前兼容:Windows 3.1要能運(yùn)行為Windows 10開(kāi)發(fā)的程序。

3. package.json 中包版本 ~ 與 ^ 說(shuō)明

package.json 中會(huì)記錄很多包的版本號(hào),前面大多出現(xiàn) ^ 和 ~ 符號(hào),表示某個(gè)包的版本號(hào)取值范圍,包的版本號(hào)在這個(gè)范圍之內(nèi)都是可以的。

  "devDependencies": {
    "axios": "^0.15.3",
    "babel-eslint": "^6.1.2",
    "babel-plugin-dva-hmr": "^0.3.2",
    "babel-plugin-import": "^1.1.1",
    "draftjs-to-html": "^0.7.0",
    "eslint": "^3.17.1",
    "eslint-config-airbnb": "^9.0.1",
    "eslint-plugin-import": "^1.16.0",
    "eslint-plugin-jsx-a11y": "^1.4.2",
    "eslint-plugin-react": "^5.1.1",
    "less-vars-to-js": "^1.1.2",
    "path-to-regexp": "^1.7.0",
    "rc-tween-one": "^1.0.0",
    "redbox-react": "^1.2.10",
    "roadhog": "0.6.0-beta.6"
  },

假定某個(gè)包的版本是 1.4.0

  • ~1.4.0表示:>=1.4.0 && < 1.5.0說(shuō)明:小版本不變,補(bǔ)丁號(hào)可以取最大值。
  • ^1.4.0表示:>=1.4.0 && < 2.0.0說(shuō)明:大版本號(hào)不變,小版本號(hào)可以取最大值。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)