【发布时间】: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 不,他们都是本地人