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


当前回答

node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --baseHref=/baseUrl/ --prod=true

其他回答

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

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

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

这会导致内存不足。

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

窗户

从控制面板进入系统→高级系统设置→环境变量→新建(用户或系统)

或者这可以在PowerShell中完成:

$env:NODE_OPTIONS="--max-old-space-size=8192"

如果需要,还可以增加这个数字。我们已经看到一些人需要增加到14gb的一些更大的项目!

Linux/macOS

export NODE_OPTIONS=--max-old-space-size=8192

由于某些原因,之前所有的答案对我都不起作用。我做了以下来解决我的问题:

我必须首先删除node_modules文件夹 在我的电脑上重新安装Node.js 然后安装NPM

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

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

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

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

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