Semantic versioning是很多项目用来描述更新时的修改程度的标准。因为有些包的修改会导致某些引用这些包的代码不能正常运行,所以对于修改程度的描述在发布包时是很重要的。
对于发布者
如果这个项目需要共享给其他人,则版本号应该始于1.0.0,然而有些npm上的项目并没有遵循这个规则。
在这之后,发布修改应该遵循以下几点:
- 修复BUG或者一些微小的改动:Patch release,增加最后一个数字,例如1.0.1。
- 新增一些不会破坏原有特性的新特性:Minor release,增加中间的数字,例如1.1.0。
- 发生的改变将会影响兼容性:Major release,增加第一个数字,例如2.0.0。
对于使用者
作为一个使用者,通过package.json文件你可以选择所使用包版本的范围。
如果你想使用一个1.0.4的包,以下示例指定的范围可以包括这个包:
- Patch releases: 1.0 or 1.0.x or ~1.0.4
- Minor releases: 1 or 1.x or ^1.0.4
- Major releases: * or x
你可以通过 granular semver ranges 学习更多。