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


当前回答

在我的案例中,我通过安装Node.js 12.10.0版本解决了这个问题。

其他回答

从Node.js 12更新到Node.js 14为我解决了这个问题。


现在更新Node.js 16可用,我建议更新到Node.js的最新可用版本。

我没有使用ng build,而是在终端中执行以下命令来修复这个问题。

 node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod

那就发球吧。

这就是我的终端机

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS D:\ProjectPath\Project1> node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod

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

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

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

这会导致内存不足。

我使用的是Node.js v-14.17的最新稳定版本。我在新的Angular Ionic项目中也遇到了同样的问题,尝试了之前的大多数答案都没有成功。

最终在升级到Node.js 16.4.2 LTS后,修复了这个问题。

在我的例子中,它是一个递归,导致React用完所有内存。

这发生在我重构代码时,我没有注意到这一点。

const SumComponent = () => {
  return (
    <>
      <SumComponent />
    </>
  )
}

在其他Node.js应用程序中,这可能是这样的:

const someFunction = () => {
  ...
  someFunction();
  ...
}