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

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


当前回答

我在上面的最佳答案中发现的唯一警告是,它将模块更新到最新版本。这意味着它可能会更新为不稳定的alpha版本。

我会使用npm检查更新实用程序。我的团队使用了这个工具,它通过安装稳定的更新有效地工作。

如Etienne所述:安装并运行以下程序:

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

其他回答

备选方案是

"dependencies":{
    "foo" : ">=1.4.5"
}

每次使用npm更新时,它都会自动更新到最新版本。有关更多版本语法,请查看此处:https://www.npmjs.org/doc/misc/semver.html

上述命令不安全,因为在切换版本时可能会损坏模块。相反,我建议如下

使用npm shrinkwrap命令将当前节点模块的实际版本设置为package.json。如果每个依赖项没有破坏您的测试,请使用https://github.com/bahmutov/next-update命令行工具

npm install -g next-update
// from your package
next-update

我真的很喜欢npm升级的工作方式。这是一个简单的命令行实用程序,它可以遍历所有依赖项,让您查看当前版本与最新版本的比较,并根据需要进行更新。

以下是在项目根目录中运行npm升级后发生的情况的屏幕截图(在package.json文件旁边):

对于每个依赖项,您可以选择升级、忽略、查看更改日志或完成该过程。到目前为止,这对我来说效果很好。

要清楚,这是一个第三方软件包,需要在命令生效之前安装。它不附带npm本身:

npm install -g npm-upgrade

然后从具有package.json文件的项目的根目录:

npm-upgrade

如果您正在寻找一个不涉及安装npm包的更简单的解决方案,我会检查updatepackagejson.com

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

$npm更新

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

$npm审计修复--强制

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

$npm安装

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