我从另一个项目中复制了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过时npm更新

应该会为您提供与应用程序兼容的最新版本。但不是最新版本。

其他回答

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

$npm更新

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

$npm审计修复--强制

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

$npm安装

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

我为最近版本的NPM找到了另一个解决方案。我想做的是用明确的最新版本号替换所有“*”依赖项。所讨论的方法都不适合我。

我所做的:

将所有“*”替换为“^0.0.0”运行npm检查更新-u

package.json中的所有内容现在都更新到最新版本。

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

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

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

安全更新

使用“npm过时”查找过期的依赖项。使用“npm update”执行安全的依赖关系升级。使用“npm install@latest”升级到包的最新主要版本。

中断更新

使用“npx npm check updates-u”。“npm install”将所有依赖项升级到最新的主要版本。

如果使用npm 5和节点8,请尝试以下命令

npm更新--保存