Skip to content
On this page

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 -> 只升级次版本号和修订版本号

Released under the MIT License.