npm 更新依赖包三种用法

一、基本命令使用

  • 查看远程安装包 packageName 的版本信息
npm view|info packageName versions复制代码
  • 检查过时的安装包
npm outdated [packageName]复制代码

版本信息说明

Package 显示包名。若使用了(--long/-l)则还是显示这个包属于dependencies还是devDependency

Current  即当前被安装依赖包的版本

Wanted 是满足 package.json 中的依赖包范围的最大版本,若没有多余版本号,则显示当前版本

Latest 是该包在仓库中标记为 latest 的版本【默认情况下是最新的,这取决于开发人员的包管理制度】

Location 是该依赖包在所居于的依赖树中所在的位置

package 字体颜色含义

  1. 红色 意味着匹配到了一个比 package.json 中定义的版本需求还要新的已安装版本【 Current > Wanted 】

  2. 黄色 表示该包自身远程仓库中有比 SemVer 需求更新的版本【 Latest > Current 】

  • 查看全局安装的包
npm list -g --depth 0复制代码

依赖版本认知

项目对应依赖包一般保存在 package.json 文件中,相对应版本号的形式为mojor.minor.patch 。

major 表示非兼容的重大 API 改变(主要的)

minor 表示向后兼容的功能性改变(次要的)

patch 表示向后兼容的 bug 修正(修补的)

依赖包对应版本号前缀符号含义

  • * 匹配最新的 major 版本依赖包

  • ^ 匹配最新的 minor 版本依赖包,eg: 1.1.0 可以更新匹配所有 1.x.x 的包,不会更新匹配  2.x.x

  • ~ 匹配最新的 patch 版本依赖包,eg: 1.1.0 可以更新匹配所有 1.0.x 的包,不会更新匹配  1.2.x

  • 没有前缀表示固定版本号, 版本不会更新匹配任何其他版本。【需要手动修改 package.json` 包版本】

二、npm update

  • 更新指定依赖安装包【不一定包括 major 位的更新,有时需要在 package.json 手动更改依赖包相应版本号在更新】
npm update packageName (-D | -S)复制代码

npm i 与npm update之间的区别

  1. npm i 只会重新安装对应安装包的版本,不会自动升级

  2. npm update 会将对应的安装包升级到最新的 latest 版本【在符合 SemVer 规格的前提下 ( 上文依赖版本人认知 ) 】

  • npm install 会安装或升级 devDependencies ,除非添加了 --production 标记
  • npm update 会忽略 devDependencies ,除非添加了 --dev 标记

三、npm-check-updates

npm install npm-check-update -g复制代码
  • 检查可更新模块
ncu
或
npm-check-update复制代码
  • 更新可更新模块【并不建议一次性更新所有可更新依赖包】(更新包括 major 位的更新)
ncu -u [packageName]复制代码

四、npm-check

npm install npm-check -g复制代码
  • 查看可更新包信息
npm-check复制代码
  • 选择并更新相应的依赖包【空格选择、enter更新】
npm-check -u复制代码

五、三种方法的区别

区别

npm update

1、 npm update [packageName] 会同步更新 package-lock.json 文件中对应的包的版本,不需要重新安装 npm 包

npm-check-updates 和 npm-check

  1. 二者基本大致相同,只是在更新过程中的一些交互表现形式存在一定的差异

  2. 更新 package.json 文件中可更新的安装包,但不会更新对应的 package-lock.json 文件中对应的包的版本

  3. 需要使用下面命令重新安装依赖:

rm -rf package-lock.json && npm i复制代码