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

最简单的方法是什么?

我知道的最好的方法是运行npm info express版本,然后手动更新package.json中的每个依赖项。一定有更好的办法。

{
  "name": "myproject",
  "description": "my node project",
  "version": "1.0.0",
  "dependencies": {
    "express": "^3.0.3", // how do I get these bumped to latest?
    "mongodb": "^1.2.5",
    "underscore": "^1.4.2"
  }
}

有关纱线特定的解决方案,请参阅本堆栈溢出线程。


当前回答

这在npm 1.3.15中起作用。

"dependencies": {
  "foo": "latest"
}

其他回答

目前最简单的方法是使用pnpm而不是npm,只需键入:

pnpm更新--最新

https://github.com/pnpm/pnpm/releases/tag/v3.2.0

npm check updates是一个实用程序,它使用所有依赖项的最新版本

看见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 

要将一个依赖项更新到最新版本,而不必手动打开package.json并更改它,可以运行

npm install {package-name}@* {save flags?}

i.e.

npm install express@* --save

此流程与工作区兼容,即。

npm --workspace some/package install express@*

作为参考,npm install


注意:某些npm版本可能需要最新标志,即npm安装express@latest


正如用户Vespakoen在被拒绝的编辑中所指出的,也可以通过以下方式一次更新多个包:

npm install --save package-nave@* other-package@* whatever-thing@*

他还提出了一个基于npm过时的外壳的单线。有关代码和说明,请参见编辑。


PS:我也讨厌为这样的事情手动编辑package.json;)

在2023年,我简单地使用了:

$npm更新

许多软件包都在此时更新,但您可能会收到一条消息,其中一些需要修复。在这种情况下,我跑了:

$npm审计修复--强制

最后,为了确保它已全部安装,我运行

$npm安装

就是这样,我的包更新了。无需手动编辑配置文件。

我通过查看https://github.com/tjunnone/npm-check-updates

$ npm install -g npm-check-updates
$ ncu
$ ncu -u # to update all the dependencies to latest
$ ncu -u "specific module name"  #in case you want to update specific dependencies to latest