一尘不染

如何将 package.json 中的每个依赖项更新到最新版本?

javascript

我从另一个项目复制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"
  }
}

阅读 420

收藏
2022-02-08

共2个答案

一尘不染

看起来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. 它将列出所有已安装的具有较新版本的依赖项。

2022-02-08
一尘不染

npm-check-updates是一个使用所有依赖项的最新版本自动调整 package.json 的实用程序

见https://www.npmjs.org/package/npm-check-updates

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

[编辑] 如果您有现代版本,那么一种稍微不那么侵入性(避免全局安装)的方法npm是:

$ npx npm-check-updates -u
$ npm install 
2022-02-08