绕不过的semver spec npm的版本号规范
一开始看到electron采用了semver spec, 也没多想就放过了. 但是, 当我自己写package.json的时候, 发现版本号那个地方也是这个货.
约定:
- 公开发布的版本new product: 1.0.0
- 补丁版本patch release: 1.0.1
- 小版本minor release: 不打破目前的各种约定1.1.0
- 主版本major release: 打破向后兼容2.0.0
如果你搞了一个补丁版本package 1.0.4,如何描述这个版本的范围呢?
- 兼容所有补丁版本Patch releases, 可以写成:
1.0
或者1.0.x
或者~1.0.4
这三种写法都是一个意思. - 兼容所有小版本Minor releases可以写成:
1
或1.x
或^1.0.4
- 兼容所有主版本Major releases可以写成:
*
或x
或者 latest
结案陈词: 奶奶的, 太装逼了. 为啥要用符号呢? ~^, 脑子有毛病吧?
2019-6-03 后记
这个符号还是有点用的, 比如从0.0.9开始都可以那么可以写为: ^0.0.9. 主要是也要体谅一下webpack这样的工具再打包的时候要找一个大家都认可的版本来打包.