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


当前回答

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

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

其他回答

我在CentOS服务器7上也有同样的问题,但这解决了我的问题:

node --max-old-space-size=X node_modules/@angular/cli/bin/ng build --prod

其中X =(2048或4096或8192 o..)是内存的值。

只需执行以下命令:

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

我删除了现有的Node.js模块,并运行以下命令来解决我的问题:

npm install -all
npm audit fix

对于那些从谷歌中找到这个问题的人,一个非angular的一般答案是:

大多数情况下,当你遇到这个错误时,可能是因为内存泄漏,库的添加/版本升级或Node.js在版本之间管理内存的方式不同(例如Node.js版本<= 10和Node.js版本> 10)。

通常只是增加分配给node .js的内存就可以让你的程序运行,但实际上可能并不能解决真正的问题,节点进程使用的内存仍然可能超过你分配的新内存。我建议在Node.js进程开始运行或更新到Node.js > 10时分析内存使用情况。

我有内存泄漏。 这是一篇关于在Node.js中调试内存泄漏的很棒的文章。

也就是说,为了增加内存,在运行Node.js进程的终端中:

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

max-old-space-size的值可以是:[2048,4096,8192,16384]等等

为了进一步清晰,还有更多例子:

export NODE_OPTIONS="--max-old-space-size=5120" # Increase to 5 GB
export NODE_OPTIONS="--max-old-space-size=6144" # Increase to 6 GB
export NODE_OPTIONS="--max-old-space-size=7168" # Increase to 7 GB
export NODE_OPTIONS="--max-old-space-size=8192" # Increase to 8 GB

# and so on...

# formula:
export NODE_OPTIONS="--max-old-space-size=(X * 1024)" # Increase to X GB

# Note: it doesn't have to be multiples of 1024.
# max-old-space-size can be any number of memory megabytes (MB) you have available.

查看max-old-space-size的当前值(单位:MB)

要查看max-old-space-size(以MB为单位)的当前值(不精确但非常接近),请在终端中运行

node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))'

另一个非angular的答案(我在AWS Amplify上构建React应用时也遇到了同样的问题)。

正如Emmanuel所提到的,这似乎来自Node.js v10和Node.js v12处理内存的方式的差异。

我试着增加记忆,但没有用。但是使用Node.js v12做到了。

根据richard的解释,检查如何将nvm use $VERSION_NODE_12添加到构建设置中

前端: 阶段: preBuild: 命令: - nvm使用$VERSION_NODE_12 - NPM ci 构建: 命令: - nvm使用$VERSION_NODE_12 - node -v - NPM运行脚本构建