导航


HTML

CSS

JavaScript

浏览器 & 网络

版本管理

框架

构建工具

TypeScript

性能优化

算法

UI、组件库

Node

业务技能

针对性攻坚

AI

公共类


一、查看npm包版本

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

二、SemVer 规范

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

SemVer规范官网:https://semver.org/

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

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

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

查看依赖的历史版本命令:

# 比如查看react的历史版本
npm view react versions

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

三、依赖版本管理

我们经常看到,在 package.json 中各种依赖的不同写法:

"dependencies": {
    "signale": "1.4.0",
    "figlet": "*",
    "react": "16.x",
    "table": "~5.4.6",
    "yargs": "^14.0.0"
}

前面三个很容易理解:

再来看看后面两个,版本号中引用了 ~^ 符号:

package.json 文件中最常见的应该是 "yargs": "^14.0.0" 这种格式的 依赖, 因为我们在使用 npm install package 安装包时,npm 默认安装当前最新版本,然后在所安装的版本号前加 ^号。

注意,当主版本号为 0 的情况,会被认为是一个不稳定版本,情况与上面不同:

四、定期更新依赖

使用 npm outdated 可以帮助我们列出有哪些还没有升级到最新版本的依赖:

执行 npm update 会升级所有的红色依赖。

五、依赖版本选择的最佳实践

版本发布

依赖范围选择

保持依赖一致

依赖变更