阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      npm update

      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,它将被降级。

      目录
      目录