出现错误 - 分配失败清理可能不会成功并且分配失败 - JavaScript 堆内存不足

问题描述 投票:0回答:1

反应版本:18.2.0
Node.js 版本:v16.18.0
Npm 版本:8.19.2

问题

我在构建我的反应应用程序时在我的 AWS EC2 t2.micro Ubuntu 操作系统中遇到错误。

每当我尝试使用

npm run build

我收到以下错误

<--- Last few GCs --->

[1623:0x6338df0]    66411 ms: Scavenge 471.0 (491.0) -> 467.5 (491.2) MB, 2.1 / 0.0 ms  (average mu = 0.211, current mu = 0.097) allocation failure
[1623:0x6338df0]    66444 ms: Scavenge 471.2 (491.2) -> 467.8 (491.5) MB, 2.2 / 0.0 ms  (average mu = 0.211, current mu = 0.097) allocation failure
[1623:0x6338df0]    67665 ms: Mark-sweep 471.4 (491.5) -> 464.1 (491.7) MB, 1191.7 / 0.0 ms  (average mu = 0.269, current mu = 0.324) allocation failure scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 0xb06730 node::Abort() [/usr/bin/node]
2: 0xa1b6d0  [/usr/bin/node]
3: 0xce1dd0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/bin/node]
4: 0xce2177 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/bin/node]
5: 0xe997e5  [/usr/bin/node]
6: 0xe9a2c6  [/usr/bin/node]
7: 0xea87ee  [/usr/bin/node]
8: 0xea9230 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/bin/node]
9: 0xeac1ae v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/bin/node]
10: 0xe6d6ea v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/usr/bin/node]
11: 0x11e6456 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/usr/bin/node]
12: 0x15da0d9  [/usr/bin/node]

已经尝试过的解决方案

在网上看了很多解决方案后 我尝试使用

增加缓存大小

export NODE_OPTIONS=--max-old-space-size=2048
仍然出现同样的错误(也尝试过 4、8、16 GB)

注意

npm run build
在我的本地计算机上运行,配置如下。

MAC 操作系统蒙特雷
节点版本:v16.13.1
Npm 版本:8.3.0
反应:18.2.0

AWS EC2 t2.micro 或 Node/npm 版本可能存在问题吗?

它应该构建一个最佳的生产

build
文件夹用于部署

node.js ubuntu npm npm-build aws-ec2-instance-connect
1个回答
2
投票

将 t2.micro 更新为 t2.medium,现在可以使用了。

© www.soinside.com 2019 - 2024. All rights reserved.