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


当前回答

只需在终端中输入以下内容:

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

当超过Node.js允许的默认最大内存时,就会发生错误。所有这些操作都增加了允许的最大内存。

其他回答

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

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

对于我来说,我得到了这个错误,因为我失去了对我的angular中dist文件夹设置的输出路径的访问。json文件。在我用更新的凭证重新连接到远程路径后,错误消失了。

对于那些从谷歌中找到这个问题的人,一个非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))'

对于那些从谷歌中得到这个问题并想要在Dockerfile中修复这个问题的非angular通用JavaScript答案(将6144替换为您想要分配的以兆字节为单位的内存量)。

我的实现在Node.js v14.1.0中工作,由Docker版本20.10.5执行,在气流v2.0.1中使用DockerOperator构建55c4c88)。

FROM node:14.1.0

# Create app directory
WORKDIR /tmp/dockerspace/

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
COPY package*.json ./

RUN npm install

# Bundle app source
COPY . .

CMD node --max-old-space-size=6144 app.js

执行如下命令:

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