将所有Node依赖项更新到最新版本

如何将package.json文件中的所有npm依赖项存储更新为可用的最新版本?

当您使用安装软件包时npm install <packagename>,则下载了该软件包的最新可用版本并将其放入node_modules文件夹,并且相应的条目已添加到package.jsonpackage-lock.json当前文件夹中存在的文件。

npm计算依赖关系,并安装这些依赖关系的最新可用版本。

假设您安装了cowsay,很酷的命令行工具,可让您说牛事物

当你npm install cowsay,此条目将添加到package.json文件:

{
  "dependencies": {
    "cowsay": "^1.3.1"
  }
}

这是从中提取的package-lock.json,为了清楚起见,我删除了嵌套的依赖项:

{
  "requires": true,
  "lockfileVersion": 1,
  "dependencies": {
    "cowsay": {
      "version": "1.3.1",
      "resolved": "https://registry.npmjs.org/cowsay/-/cowsay-1.3.1.tgz",
      "integrity": "sha512-3PVFe6FePVtPj1HTeLin9v8WyLl+VmM1l1H/5P+BTTDkMAjufp+0F9eLjzRnOHzVAYeIYFF5po5NjRrgefnRMQ==",
      "requires": {
        "get-stdin": "^5.0.1",
        "optimist": "~0.6.1",
        "string-width": "~2.1.1",
        "strip-eof": "^1.0.0"
      }
    }
  }
}

现在,这两个文件告诉我们我们已经安装了版本1.3.1关于Cowsay,我们的更新规则是^1.3.1,对于npm版本控制规则意味着npm可以更新到补丁和次要发行版:1.3.21.4.0等等。

但不适用于破坏兼容性的主要版本更改,这意味着在此示例中,2.0和更高。

如果有新的次要版本或补丁版本,我们输入npm update,已安装的版本已更新,并且package-lock.json努力地用新版本填充文件。

package.json保持不变。

要发现软件包的新版本,请运行npm outdated

以下是一个存储库中一些过时的软件包的列表,我已经有一段时间没有更新了:

其中一些更新是主要版本。跑步npm update不会更新这些版本。绝不会以这种方式更新主要版本,因为它们(根据定义)会引入重大更改,并且npm想要省事。

要将所有软件包更新到新的主要版本,请安装npm-check-updates全球包装:

npm install -g npm-check-updates

然后运行它:

ncu -u

这将升级所有版本提示package.json文件,到dependenciesdevDependencies,因此npm可以安装新的主要版本。

现在,您可以运行更新了:

npm update

如果您下载的项目没有node_modules依赖项,您想先安装闪亮的新版本,然后运行

npm install

免费下载我的Node.js手册


更多节点教程: