当我使用Ionic serve命令运行Ionic 3项目时,我会得到这个错误:
当前回答
只需在终端中输入以下内容:
export NODE_OPTIONS="--max-old-space-size=8192"
当超过Node.js允许的默认最大内存时,就会发生错误。所有这些操作都增加了允许的最大内存。
其他回答
添加参数——build-optimizer解决了我的问题:
Node——max_old_space_size=4096 ./node_modules/@angular/cli/bin/ng build——prod——构建优化器
我不知道为什么添加only——build-optimizer可以解决这个问题,但根据Angular文档,它应该在启用AOT编译的情况下使用,所以更新后的命令应该如下所示:
--build-optimizer=true --aot=true
Angular构建文档
更换线路
"start": "ng serve -o——port 4300——configuration= zh " with
"start": "node——max_old_space_size=5096 node_modules/@angular/cli/bin/ng serve -o——port 4300——configuration= zh "
注意:
端口—4300不是常量,这取决于您选择的端口。 ——max_old_space_size=5096 too not constant;任意值1024、2048、4096等
export NODE_OPTIONS="——max-old-space-size=6144" #它将增加到6gb。
——如果不解决尝试这2的步骤 ------------- 2)只需将节点版本更新到最新版本即可解决此问题。
——如果没有解决试试这第三步 ------------- 3)在windows终端上运行这个命令。 设置NODE_OPTIONS =——max_old_space_size = 4096
对于我来说,我得到了这个错误,因为我失去了对我的angular中dist文件夹设置的输出路径的访问。json文件。在我用更新的凭证重新连接到远程路径后,错误消失了。
对于那些从谷歌中找到这个问题的人,一个非angular的一般答案是:
大多数情况下,当你遇到这个错误时,可能是因为内存泄漏,库的添加/版本升级或Node.js在版本之间管理内存的方式不同(例如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.
查看max-old-space-size的当前值(单位:MB)
要查看max-old-space-size(以MB为单位)的当前值(不精确但非常接近),请在终端中运行
node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))'