咱們在寫package.json
的時候,會在dependencies
和devDependencies
中看下各類格式的版本號:相似html
{ "devDendencies": { "browser-sync": "^2.16.0", "gulp": "^3.9.1", "gulp-concat": "^2.6.0", "jshint": "^2.9.3", "require-dir": "^0.3.0", "streamqueue": "^1.1.1" } }
實際這些版本號遵循semver 2.0的語義化版本規則。node
版本號分爲三部分組成:主版本號.次版本號.修訂號
版本號遞增規則以下:git
主版本號:當你作了不兼容的API 修改,github
次版本號:當你作了向下兼容的功能性新增,npm
修訂號:當你作了向下兼容的問題修正。json
先行版本號及版本編譯信息能夠加到「主版本號.次版本號.修訂號」的後面,做爲延伸。gulp
表達式 | 版本範圍 | 說明 | |
---|---|---|---|
1.2.1 | 1.2.1 | 匹配指定版本,這裏是匹配1.2.1。 | |
^1.0.0 | >=1.0.0 且 <2.0.0 | ^ 表示與指定的版本兼容,左邊第一個非0字段不可變,後面的可變,即1.X.X但不獲得2.0.0 |
|
^0.0.3 | >=0.0.3 且 <0.0.4 | 同上 | |
^5.x | >=5.0.0 且 <6.0.0 | 同上 | |
~0.1.1 | >=0.1.1 且 <0.2.0 | ~ 表示約等於版本,若是存在次版本號,則容許修訂號爲最高的,不然容許次版本爲最高,如 ~1匹配>=1.0.0 且 <2.0.0 |
|
* | 匹配 >=0.0.0 | 通配符 | |
>=3.0.0 | >=3.0.0 | 其餘符號還有<,<=,>,>=,=.字面意思。可以使用空格表示AND,雙豎線表示OR,範例:1.2.7 雙豎線 >=1.2.9 <2.0.0 表示可包含 1.2.七、1.2.9 和 1.4.6,不可包含 1.2.8 或 2.0.0 | |
1.30.2 - 2.30.2 | >=1.30.2 且 <=2.30.2 | 字面意思 | |
git://github.com/user/project.git#commit-ish | Git URL形式的依賴 | 還支持URL、GitHub URL、本地 URL,詳見 URLs as Dependencies | |
latest | 當前發佈的版本 | 這是一個tag,常見的還有next stable beta canary,詳情參考dist-tag npm Documentation |
參考:ui