[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
versionMust matchversionexactly>versionMust be greater thanversion>=versionetc<version<=version~version:更新 patch 的版號至最新^version:更新 minor 的版號至最新,例如^1.2.3的意思是>=1.2.3 <2.0.0,參考 semver1.2.x1.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 - version2Same as>=version1 <=version2.range1 || range2Passes if either range1 or range2 are satisfied.git...See 'Git URLs as Dependencies' belowuser/repoSee 'GitHub URLs' belowtagA specific version tagged and published astagSeenpm-dist-tagpath/path/pathSee Local Paths below
// git repository
"iso-3166-2": "git+https://github.com/Wavinfo/iso-3166-2.js.git",
package.json @ npm