乐趣区

npm-update-全方位解读

本文参考了 NPM 中文文档写作而成的

npm update 功能

更新软件包

npm update 使用

npm update [-g] [<pkg>...]

aliases: up, upgrade

npm update 说明

该命令会将所有列出的软件包更新到最新版本(由 tagconfig 指定),同时注意使用 semver。

它还将安装缺少的软件包。与所有安装软件包的命令一样,该 –dev 标志也会引起 devDependencies 处理。

如果 -g 指定了该标志,则此命令将更新全局安装的软件包。

如果未指定软件包名称,则将更新指定位置(全局或本地)中的所有软件包。

从开始 npm@2.6.1,npm update 只会检查顶级软件包。的先前版本 npm 还会递归检查所有依赖项。要获取旧的行为,请使用 npm –depth 9999 update。

从开始 npm@5.0.0,npm update 将更 package.json 改为将新版本保存为所需的最低依赖关系。要获取旧的行为,请使用 npm update –no-save。

npm update 例子

重要版本注意:这些示例仅适用于 npm@2.6.1 以后的版本。对于的旧版本 npm,您必须指定 –depth 0 要获得下面描述的行为。

对于下面的示例,假定当前软件包为,app 并且它依赖于依赖项 dep1(dep2,.. 等)。的发行版本为 dep1:

{"dist-tags": { "latest": "1.2.2"},
  "versions": [
    "1.2.2",
    "1.2.1",
    "1.2.0",
    "1.1.2",
    "1.1.1",
    "1.0.0",
    "0.4.1",
    "0.4.0",
    "0.2.0"
  ]
}

插入符依赖性

如果 app 的 package.json 包含:

"dependencies": {"dep1": "^1.1.1"}

然后 npm update 将安装 dep1@1.2.2,因为 1.2.2 是 latest 和 1.2.2 满足 ^1.1.1。

波浪依赖

但是,如果 app 的 package.json 包含:

"dependencies": {"dep1": "~1.1.1"}

在这种情况下,运行 npm update 将安装 dep1@1.1.2。即使 latest 标签指向了 1.2.2,这个版本也不能满足~1.1.1,相当于》=1.1.1 <1.2.0。因此,~1.1.1 使用满足要求的最高排序版本 1.1.2。

下面 1.0.0 插入符依赖

假设 app 插入符依赖于以下版本 1.0.0,例如:

"dependencies": {"dep1": "^0.2.0"}

npm update 将安装 dep1@0.2.0,因为没有其他满足要求的版本 ^0.2.0。

如果依赖于 ^0.4.0:

"dependencies": {"dep1": "^0.4.0"}

然后 npm update 安装 dep1@0.4.1,因为这是满足 ^0.4.0(>= 0.4.0 <0.5.0)的最高排序版本

更新全局安装的软件包

npm update -g 会将 update 操作应用于每个全局安装的软件包,即 outdated- 具有不同于的版本 latest。

注意:如果软件包已升级到比更高的版本 latest,它将被降级。

本文参考 NPM 中文文档

退出移动版