【问题标题】:Updating all packages with Npm [duplicate]使用 Npm 更新所有软件包 [重复]
【发布时间】:2019-10-14 07:49:06
【问题描述】:

我有大量已过时的软件包,我想更新。我尝试按照npm documentation:npm update --depth 9999 -dev 中的描述运行 npm update 更新花了很长时间,最后失败了。我又尝试了几次,我将堆栈大小设置为无限制等,但它总是需要几个小时,最后它失败了。

我尝试使用 --depth 999(不是 9999)更新单个包,但也失败了。

有什么推荐的方法来更新所有有效的包吗?

**Edit:** At first I was getting  `MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added. Use emitter.setMaxListeners() to increase limit`

然后我得到一个堆超出异常:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

最后,我得到了Max call stack size exceeded.

我将堆栈大小设置为无限制并降低了深度,但它已经运行了几个小时没有结果。

【问题讨论】:

  • --depth 参数用于递归更新包,可能不是您想要的(即,让包创建者处理 他们 安装的版本,同时更新所有直接顶级包)。
  • 失败时显示什么错误?
  • 更新是什么意思?将package.json 更改为最新版本的软件包?或者只是更新node_modules
  • 如果这些是全局安装的,您可能需要考虑从全局安装转移到目录级安装。
  • @WillCain 不,他们都是本地人

标签: node.js ubuntu npm


【解决方案1】:

结果我不知何故运行了 4 个 npm 更新作业。我杀死了他们,然后运行npm outdated,获取输出并为每个包运行npm install <package>@<version>

我随后安装并运行了npm-check-udates,它安装了另外一些软件包。

【讨论】:

    【解决方案2】:

    运行:

    npm cache clean
    

    然后再试一次。

    【讨论】:

    • 这是一个问题,而不是一个答案。如果您知道这是答案,也许只需说“运行npm cache clean 并重试。”
    • @Wyck 我已经编辑过了 - 这显然是试图回答这个问题,但格式错误。
    • 我会试试的。我觉得失败的更新尝试(以及我提前终止的几次)正在影响事情,所以清除缓存可能会有所帮助。
    • 这在 npm@5 后不起作用,你需要:npm cache clean --force 然后npm outdated
    猜你喜欢
    • 2020-04-21
    • 2016-12-22
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2019-06-19
    • 1970-01-01
    相关资源
    最近更新 更多