当我使用Ionic serve命令运行Ionic 3项目时,我会得到这个错误:
当前回答
我删除了现有的Node.js模块,并运行以下命令来解决我的问题:
npm install -all
npm audit fix
其他回答
当我运行angular 'ng serve'时,我也有类似的问题:
"致命错误:无效的标记-压缩接近堆限制分配失败- JavaScript堆内存不足"
在我的例子中,我发现我的Angular应用程序使用了惰性加载。一个模块已经导入到自己的路由模块,但有人做了一个导入它到应用程序模块,这导致递归(?)加载。
这会导致内存不足。
在我的例子中,它是一个递归,导致React用完所有内存。
这发生在我重构代码时,我没有注意到这一点。
const SumComponent = () => {
return (
<>
<SumComponent />
</>
)
}
在其他Node.js应用程序中,这可能是这样的:
const someFunction = () => {
...
someFunction();
...
}
如果这对某人有用的话。确保我们的Sass中没有递归。或者在最近添加的代码中使用不存在的递归。在某些情况下,超过Max堆就是一个标志。
我在Angular上也遇到了同样的问题。然后我写了
"serve": "node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng serve"
要打包的脚本。Json脚本,为我解决了这个问题。
并运行project this命令:
npm run serve
执行如下命令:
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