一尘不染

如何将package.json中的每个依赖关系更新为最新版本?

node.js

我从另一个项目复制了package.json,现在想将所有依赖项都升级到最新版本,因为这是一个新项目,如果出现问题,我不介意进行修复。

最简单的方法是什么?

我现在知道的最好的方法是npm info express version手动运行每个包,然后手动更新package.json。肯定有更好的办法。

{
  "name": "myproject",
  "description": "my node project",
  "version": "1.0.0",
  "engines": {
    "node": "0.8.4",
    "npm": "1.1.65"
  },
  "private": true,
  "dependencies": {
    "express": "~3.0.3", // how do I get these bumped to latest?
    "mongodb": "~1.2.5",
    "underscore": "~1.4.2",
    "rjs": "~2.9.0",
    "jade": "~0.27.2",
    "async": "~0.1.22"
  }
}

19年5月1日更新 :六年后,我仍在维护npm-check-updates作为该问题的综合解决方案。请享用!


阅读 699

收藏
2020-07-07

共1个答案

一尘不染

看起来npm-check-updates是现在做到这一点的唯一方法。

npm i -g npm-check-updates
ncu -u
npm install

在npm <3.11上:

只需将每个依赖项的版本更改为*,然后运行即可npm update --save。( 注意:
在最新(3.11)版本的npm中已损坏)。

之前:

  "dependencies": {
    "express": "*",
    "mongodb": "*",
    "underscore": "*",
    "rjs": "*",
    "jade": "*",
    "async": "*"
  }

后:

  "dependencies": {
    "express": "~3.2.0",
    "mongodb": "~1.2.14",
    "underscore": "~1.4.4",
    "rjs": "~2.10.0",
    "jade": "~0.29.0",
    "async": "~0.2.7"
  }

当然,这是更新依赖项的钝器。如您所说,如果项目为空且没有任何中断,那就很好。

另一方面,如果您在一个更成熟的项目中工作,则可能要在升级之前验证依赖项中是否没有重大更改。

要查看哪些模块已过时,只需运行npm outdated。它将列出具有较新版本的所有已安装依赖项。

2020-07-07