致命错误:接近堆限制的无效标记压缩分配失败 - Ionic 3 中的 JavaScript 堆内存不足
IT技术
javascript
ionic-framework
ionic3
ionic-serve
2021-02-03 04:48:38
6个回答
对于那些从谷歌登陆这个问题的人的非角一般答案:
每次遇到此错误时,可能是因为内存泄漏或 Node.js <= 10 和 Node.js > 10 管理内存的方式不同。
通常只是增加分配给 Node.js 的内存将允许您的程序运行,但实际上可能无法解决真正的问题,并且节点进程使用的内存仍然可能超过您分配的新内存。我建议在 Node.js 进程开始运行或更新到 Node.js > 10 时分析它的内存使用情况。
我有内存泄漏。这是一篇关于在 Node.js 中调试内存泄漏的好文章。
也就是说,要增加内存,请在运行 Node.js 进程的终端中:
export NODE_OPTIONS="--max-old-space-size=8192"
其中的值max-old-space-size
可以是:[2048, 4096, 8192, 16384]
等
更多示例以进一步清晰:
export NODE_OPTIONS="--max-old-space-size=5120" # Increase to 5 GB
export NODE_OPTIONS="--max-old-space-size=6144" # Increase to 6 GB
export NODE_OPTIONS="--max-old-space-size=7168" # Increase to 7 GB
export NODE_OPTIONS="--max-old-space-size=8192" # Increase to 8 GB
# and so on...
# formula:
export NODE_OPTIONS="--max-old-space-size=(X * 1024)" # Increase to X GB
# Note: it doesn't have to be multiples of 1024.
# max-old-space-size can be any number of memory megabytes (MB) you have available.
就我而言,我通过安装 Node.js 版本 12.10.0 解决了这个问题。
我在CentOS服务器 7上遇到了同样的问题,但这解决了我的问题:
node --max-old-space-size=X node_modules/@angular/cli/bin/ng build --prod
X = (2048 or 4096 or 8192 o..)
记忆的value在哪里。
只需在终端中输入:
export NODE_OPTIONS="--max-old-space-size=8192"
当您超过 Node.js 允许的默认最大内存时,就会发生错误。所有这些都是增加允许的最大内存。
我ng build
在 Visual Studio Code 中执行命令时遇到了同样的错误。但是当我按以下顺序在 Windows 命令行上执行相同的操作时,我可以成功构建。
步骤1。
set NODE_OPTIONS=--max_old_space_size=4096
第2步。
ng build
其它你可能感兴趣的问题