npm 版本管理
TIP
npm 版本管理使用semver规范:https://semver.org/
npm 的版本遵守统一的规则:
javascript
<major>.<minor>.<patch>
<major>.<minor>.<patch>-<prerelease>
<major>.<minor>.<patch>-<alpha|beta|rc>.<prerelease>
例如:
1.5.2
1.5.3-2
1.5.3-alpha.5
major
主版本号,破坏性改动,与旧版本不兼容minor
次版本号,新功能改动,能兼容旧版本patch
修订版本号,问题修复和优化,能兼容旧版本alpha
内测版本,给内部人员测试使用的版本,问题可能很多,可能会频繁变动beta
公测版本,开放给公众人员使用,但仍然可能出现很多问题rc
预览版本,比 beta 更稳定,功能不会再增加prerelease
预发布版本号
项目版本管理
项目版本指的是 package.json 文件的 version 属性:
json
{
"name": "test",
"version": "1.0.0",
"description": "npm 介绍",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
"author": "",
"license": "MIT"
}
TIP
一般只有在开发模块的时候才需要关心版本号,发布模块的时候就是以这个版本号进行发布。这边版本号可以手动修改,但不建议这样做,建议用命令行 npm version 升级版本。
语法:
bash
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]
常用的就这几种:
- 升级主版本:
bash
npm version major
- 升级次版本号:
bash
npm version minor
- 升级修订版本号:
bash
npm version patch
- 直接输入版本号
bash
npm version 2.0.0-alpha.0
模块依赖版本
TIP
项目开发中通常会使用第三方模块,也就会依赖其他模块,依赖的模块都会记录在 package.json 的 dependencies 或 devDependencies ,例如:
json
"dependencies": {
"d3": "5.16.0",
"dayjs": "^1.10.3",
},
TIP
通常会以 ^x.x.x 的方式写,版本号前面会加上 ^ ,这表示主版本号不升级,次版本号和修订版本号安装最新版本。当然写法不只这一种,下面将列出所有情况:
固定版本
- 1.0.0 -> 1.0.0
- =1.0.0 -> 1.0.0
- v1.0.0 -> 1.0.0
使用 >、>=、<、<= 范围版本
1.0.0 -> 大于 1.0.0
=1.0.0 -> 大于等于 1.0.0
- ...
使用 - 、* 、x
- 1.2.3 - 2.3.4 -> >=1.2.3 <=2.3.4
- -> >=0.0.0
- 1.x -> >=1.0.0 <2.0.0
- 1.2.x -> >=1.2.0 <1.3.0
- ...
使用 ^ 、~
- ~1.2.3 -> >=1.2.3 <1.3.0 -> 只升级修订版本号
- ^1.2.3 -> >=1.2.3 <2.0.0 -> 只升级次版本号和修订版本号