我在将 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/