[npm] 套件版本的意義 semver
keywords: version
Semver
指的是 semantic versioning。
當你要分享套件給別人是,通常都是從 1.0.0
開始,但這在 npm 中常常沒有跟著這個規則,因此你可以看到很多 version 是以 0.0.x
開始,而 0
開頭的意思,表示這個套件還不夠穩定來作為公開釋出,因此如果你的套件是別人可以正常使用的,那麼應該以 1.0.0
開始。
semver @ npmjs
semantic version(semver)
- patch release:當套件只進行基本的 bugfix ,沒有新增什麼功能或特色,會增加最後一位的版本號時,
1.0.1
。 - minor release:當套件有增加 api 的一些功能,但不會影響到這個套件的整體使用,會增加中間的版本號,
1.1.0
。 - major release:新的 api 已經是無法向下兼容的,也就是在新版的套件中使用舊版的 API 可能會導致錯誤,這時候套件會增加最前面的版本號,
2.0.0
。
更新套件
如果你只想更新套件的 patch version,可以在 package.json
中輸入:
1.0.x
~1.0.4
如果你只想更新套件的 minor version,可以在 package.json
中輸入:
1.x
^1.0.4
version
Must matchversion
exactly>version
Must be greater thanversion
>=version
etc<version
<=version
~version
:更新 patch 的版號至最新^version
:更新 minor 的版號至最新,例如^1.2.3
的意思是>=1.2.3 <2.0.0
,參考 semver1.2.x
1.2.0, 1.2.1, etc., but not 1.3.0http://...
See 'URLs as Dependencies' below*
Matches any version""
(just an empty string) Same as*
version1 - version2
Same as>=version1 <=version2
.range1 || range2
Passes if either range1 or range2 are satisfied.git...
See 'Git URLs as Dependencies' belowuser/repo
See 'GitHub URLs' belowtag
A specific version tagged and published astag
Seenpm-dist-tag
path/path/path
See Local Paths below
// git repository
"iso-3166-2": "git+https://github.com/Wavinfo/iso-3166-2.js.git",
package.json @ npm