Node 包的语义化版本号控制
介绍
对版本号做个约定性的规范,你知我知大家知。 npm 管理包的版本基于语义化版本控制规范 (SemVer) 。
版本号
版本号格式:主版本号.次版本号.修订号
- 主(
major
)版本号:当你做了不兼容的 API 修改; - 次(
minor
)版本号:当你做了向下兼容的功能性新增; - 修订(
patch
)版本号:当你做了向下兼容的问题修正;
详情参考semver规范
主要介绍几点:
v1.2.3 不是语义化版本号
,而是tag名。1.2.3才是。- 修订版本号的修正,指的是
针对不正确结果而进行的内部修改
。 - 先行版软件,可以在版本号后面加窜字符。例如:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。
- 可以0.1.0 作为软件初始开发的版本号。
安装包的范围版本选择
在 package.json 里可以看到 ( ~ )
和 ( ^ )
等版本号版本前缀语法,其实还有更多丰富的版本范围语法。
~ :表示安装的时候,主版本号和此版本号不变,只更新修订号到最后一个 (latsed) 版本。 ^ :表示安装的时候,主版本号不变,更新次版本号和修订版本号到最后一个 (latsed) 一个版本号 。
还有可以使用 >= , <= , > , < = , -, x ,*等符号。详情参考npm/node-semver
{
"dependencies": {
"lodash": "<2.4.1",
"moment": "=1.0.0",
"iview": "1 - 3",
"element-ui": "1.x.x"
}
}
npm install 安装
在 npm install 安装,可以选择 x 符号匹配任意符号。 也可以使用 npm dist-tag的名称。 latset 和 next 是内置标签。具体参考npm-dist-tag
npm install lodash@x.x.x # 安装最新包
npm install lodash@1.x.x # 主版本号不变,安装最新包
npm install lodash@2.2.x # 主版本号和次版本号不变,安装最新修订版
npm install lodash@latest # 安装最后一个稳定发行版本
npm install lodash@next # 安装即将到来的发行版
可以使用版本查看工具:https://semver.npmjs.com/
参考资料:
> https://semver.org/lang/zh-CN/
> https://github.com/npm/node-semver