javascript - npm 每次都运行 "JavaScript heap out of memory"(几乎)

标签 javascript node.js npm heap-memory

我在将 npm 运行到 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 时遇到问题。 由于我在新电脑上安装了node.js&npm,所以它不起作用。

唯一有效的 npm 命令是 npm -v其他人则遇到内存不足的情况。

系统信息:

  • Win10(64 位;16GB RAM(通常约为 6GB 可用 RAM);i7-7820HQ)
  • Node -v => v7.4.0
  • npm -v => 4.1.2
  • $/c/NodeJS/的路径(node.js 根文件夹)

我尝试过的:

  • 在多个版本中全新安装 node.js 和 npm(所有版本都出现几乎相同的异常)
  • 已检查~/.npm & ~/npm_cache (两者都不存在)
  • 通过 node --max_old_space_size=8000 /usr/bin/npm [command] 运行 npm但会导致不同的异常(异常“Z”)( https://stackoverflow.com/a/40939496 )

我想知道的是:

  • 内存升至约 1.4-1.5 GB 内存,CPU 使用率约 40%
  • 然后 CPU 使用率下降到 ~12-17%(我认为是 GC)
  • 直到那时,即使使用 -ddd (详细),gitbash/cmd 中也没有单个日志/异常输出
  • 在 Strg+C 中断和另一个约 2 分钟后出现以下异常

异常:

$ npm help -ddd

<--- Last few GCs --->

[17172:000001E0EEED86A0]   423428 ms: Mark-sweep 1485.5 (1522.0) -> 1485.5 (1522.0) MB, 2817.0 / 0.0 ms  allocation failure GC in old space requested
[17172:000001E0EEED86A0]   426164 ms: Mark-sweep 1485.5 (1522.0) -> 1485.5 (1516.0) MB, 2735.9 / 0.0 ms  last resort gc
[17172:000001E0EEED86A0]   429133 ms: Mark-sweep 1485.5 (1516.0) -> 1485.5 (1516.0) MB, 2969.9 / 0.0 ms  last resort gc


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 000003092D4C0D59 <JS Object>
    2: listener [C:\NodeJS\v5\node_modules\npm\node_modules\npmlog\node_modules\gauge\node_modules\signal-exit\index.js:88] [pc=0000031922938DD5](this=000002CCA2196281 <a process with map 000001E744610B71>)
    3: emitNone(aka emitNone) [events.js:86] [pc=0000031922938B31](this=000003092D404311 <undefined>,handler=0000031F86B79379 <JS Function listener (SharedFunctionInfo 0000031F86B79029)>,i...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

JS 堆栈跟踪似乎有时会有所不同,例如像这样:

==== JS stack trace =========================================

Security context: 0000031DFB2C0D59 <JS Object>
    2: emitNone(aka emitNone) [events.js:86] [pc=000002993916DA71](this=0000031DFB204311 <undefined>,handler=00000360FFC77F41 <JS Function listener (SharedFunctionInfo 00000360FFC77BF1)>,isFn=0000031DFB2043B1 <true>,self=000002EEFFA95499 <a process with map 000000CA9BF10B71>)
    3: emit [events.js:185] [pc=000002993916D5CA](this=000002EEFFA95499 <a process with map 000000CA9BF10B71>,type=000...

运行时出现异常“Z”node --max_old_space_size=4000 /c/NodeJS/npm help

C:\NodeJS\v5\npm:4
case `uname` in
^^^^
SyntaxError: Unexpected token case
    at Object.exports.runInThisContext (vm.js:78:16)
    at Module._compile (module.js:543:28)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:535:3

我认为,安装不是问题,因为我从 friend 那里得到了一个可用的node.js 文件夹。但我直到现在才在这台电脑上进行任何配置(也许这是错误?)

最佳答案

我找到了这个错误的解决方案 http://www.fatalerrors.org/a/fatal-error-markcompactcollector-semi-space-copy.html 。我在此配置中有一个无效的路径(分区)。删除该条目后,我可以再次使用 npm。

关于javascript - npm 每次都运行 "JavaScript heap out of memory"(几乎),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48765104/

相关文章:

javascript - Jquery 多 ID 错误

Node.js 如何将 req.body 转换为字符串

javascript - Express 应用程序不听没有端口

node.js - 依赖项 - 未安装错误(npm WARN optional SKIPPING OPTIONAL DEPENDENCY : fsevents@^1. 0.0 (node_modules\chokidar\node_modules\fsevents)

css - 是否可以在 Web 应用程序中仅提取和捆绑必要的 css 类

javascript - 如何让单引号保留在变量中?

javascript - html block 的相关js文件和css文件

php - 如何在 php 中回显 javascript 代码

c++ - Heroku/AppFog 上的 Node.js TCP 服务器

npm - cross-env 未设置 NODE_ENV