当我使用Ionic serve命令运行Ionic 3项目时,我会得到这个错误:
当前回答
export NODE_OPTIONS="——max-old-space-size=6144" #它将增加到6gb。
——如果不解决尝试这2的步骤 ------------- 2)只需将节点版本更新到最新版本即可解决此问题。
——如果没有解决试试这第三步 ------------- 3)在windows终端上运行这个命令。 设置NODE_OPTIONS =——max_old_space_size = 4096
其他回答
当我运行angular 'ng serve'时,我也有类似的问题:
"致命错误:无效的标记-压缩接近堆限制分配失败- JavaScript堆内存不足"
在我的例子中,我发现我的Angular应用程序使用了惰性加载。一个模块已经导入到自己的路由模块,但有人做了一个导入它到应用程序模块,这导致递归(?)加载。
这会导致内存不足。
在我的例子中,错误是由于在for中不恰当地使用条件引起的。循环。而不是:
for (let t = startNo; t <= endNo; t++) {}
我有:
for (let t = startNo; endNo; t++) {}
如果这对某人有用的话。确保我们的Sass中没有递归。或者在最近添加的代码中使用不存在的递归。在某些情况下,超过Max堆就是一个标志。
添加参数——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构建文档
我使用的是Node.js v-14.17的最新稳定版本。我在新的Angular Ionic项目中也遇到了同样的问题,尝试了之前的大多数答案都没有成功。
最终在升级到Node.js 16.4.2 LTS后,修复了这个问题。