npm版本规范

116 阅读2分钟

.1 查看npm包版本

执行npm view package version 查看某个package 的最新版本

执行npm view package versions 查看某个package在npm服务器上所有发布过的版本

执行 npm ls 可查看当前仓库依赖树上所有包的版本信息

2.2SemVer规范

npm包 中的模块版本都需要遵循 SemVer规范——由 Github 起草的一个具有指导意义的,统一的版本号表示规则。实际上就是 Semantic Version(语义化版本)的缩写。

标准版本

SemVer规范的标准版本号采用 X.Y.Z 的格式,其中 X、Y 和 Z 为非负的整数,且禁止在数字前方补零。X 是主版本号、Y 是次版本号、而 Z 为修订号。每个元素必须以数值来递增。

  • 主版本号(major):当你做了不兼容的API 修改
  • 次版本号(minor):当你做了向下兼容的功能性新增
  • 修订号(patch):当你做了向下兼容的问题修正

先行版本

当某个版本改动比较大、并非稳定而且可能无法满足预期的兼容性需求时,你可能要先发布一个先行版本。

先行版本号可以加到“主版本号.次版本号.修订号”的后面,先加上一个连接号再加上一连串以句点分隔的标识符和版本编译信息。

  • 内部版本(alpha):
  • 公测版本(beta):
  • 正式版本的候选版本rc: 即 Release candiate

发布版本

在修改 npm 包某些功能后通常需要发布一个新的版本,我们通常的做法是直接去修改 package.json 到指定版本。如果操作失误,很容易造成版本号混乱,我们可以借助符合 Semver 规范的命令来完成这一操作:

  • npm version patch : 升级修订版本号

  • npm version minor : 升级次版本号

  • npm version major : 升级主版本号

2.3依赖版本管理

"dependencies": {
"signale": "1.4.0",
"figlet": "*",
"react": "16.x",
"table": "~5.4.6",
"yargs": "^14.0.0"}
  • "signale": "1.4.0":固定版本号

  • "figlet": "*":任意版本

  • "react": "16.x":匹配主要版本(>=16.0.0 <17.0.0)

  • "react":"16.3.x":匹配主要版本和次要版本(>=16.3.0 <16.4.0)

~^

  • ~:当安装依赖时获取到有新版本时,安装到x.y.z中的z的最新版本,保持主版本号此版本号不变的情况下,修订到最新版本
  • ^:当安装依赖时获取到有新版本时,安装到 x.y.zyz 都为最新版本,保持主版本号不变的情况下,保持次版本号、修订版本号为最新版本。