当我使用Ionic serve命令运行Ionic 3项目时,我会得到这个错误:


当前回答

添加参数——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构建文档

其他回答

当我运行angular 'ng serve'时,我也有类似的问题:

"致命错误:无效的标记-压缩接近堆限制分配失败- JavaScript堆内存不足"

在我的例子中,我发现我的Angular应用程序使用了惰性加载。一个模块已经导入到自己的路由模块,但有人做了一个导入它到应用程序模块,这导致递归(?)加载。

这会导致内存不足。

我想有很多方法可以达到这个错误!

在我这边,我的package.json中有一个循环。项目A依赖于项目B,项目B又依赖于项目A。

有时候简单是成功的关键。在你的代码中搜索while (i <= 10000){}而不增加i;)

检查文件夹名称。如果文件夹名中有空格,就会产生这类问题。不带空格的重命名。

执行如下命令:

export NODE_OPTIONS="--max-old-space-size=2048"

检查你已经有多少钱了:

> node
> v8.getHeapStatistics()
{
  total_heap_size: 6049792,
  total_heap_size_executable: 524288,
  total_physical_size: 5477720,
  total_available_size: 1094444024,
  used_heap_size: 4141728,
  heap_size_limit: 1098907648,
  malloced_memory: 8192,
  peak_malloced_memory: 582752,
  does_zap_garbage: 0,
  number_of_native_contexts: 2,
  number_of_detached_contexts: 0
}

然后heap_size_limit: 1098907648