WePY使用总结

2025-07-18 23:59:37

报错:

<--- Last few GCs --->

rt of marking 242 ms) (average mu = 0.200, current mu = 0.087) allocation f[27446:0x110008000] 14362 ms: Mark-sweep 403.6 (421.2) -> 401.9 (421.7) MB, 227.6 / 0.0 ms (+ 0.0 ms in 53 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 244 ms) (average mu = 0.143, current mu = 0.078) allocation f[27446:0x110008000] 14680 ms: Mark-sweep 404.1 (421.7) -> 403.1 (422.2) MB, 302.5 / 0.0 ms (average mu = 0.091, current mu = 0.048) allocation failure scavenge might not succeed

<--- JS stacktrace --->

==== JS stack trace =========================================

0: ExitFrame [pc: 0x3ff6c105be3d]

Security context: 0x134260f1e6e1

1: setContext [0x1342a829ec99] [/Users/hsh/Desktop/??/1.??-???/4.BBC-Wechat-App-Administrator-uat-22.2.0.57-gas/node_modules/babel-traverse/lib/path/context.js:~154] [pc=0x3ff6c16c5e05](this=0x1342c522d639 ,context=0x1342c522d5b9 )

2: /* anonymous */ [0x1342498cb6d9] [/Users/hsh/De...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

1: 0x10003b1db node::Abort() [/usr/local/bin/node]

2: 0x10003b3e5 node::OnFatalError(char const*, char const*) [/usr/local/bin/node]

3: 0x1001a86b5 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]

4: 0x100573ad2 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]

5: 0x1005765a5 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/usr/local/bin/node]

6: 0x10057244f v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/bin/node]

7: 0x100570624 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]

8: 0x10057cebc v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]

9: 0x10057cf3f v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]

10: 0x10054c884 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/usr/local/bin/node]

11: 0x1007d4894 v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]

12: 0x3ff6c105be3d

13: 0x3ff6c16c5e05

原因:

这个错误的意思时内存溢出,为什么会内存溢出呢?

原来 nodejs 默认限制了最大可使用的内存大小。

nodejs V8 引擎在 64 位机器上默认限制使用内存最大不超过 1.7GB,超过这个限制官方建议尝试优化为多线程方式。

当前端项目非常庞大时,编译时会占用很多资源,所以就会出现内存溢出的问题。

解决办法:

cd到我们的项目目录下执行:

// windows

set NODE_OPTIONS=--max_old_space_size=4096

// mac/linux

export NODE_OPTIONS=--max_old_space_size=4096

再执行npm run dev 即可;

nba世界杯