构建vue大项目报错:Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memo

环境

Windows 10
vscode

过程

今天在构建一个Vue大项目时(我使用的是yarn run build命令构建项目),遇到一个内存不足的报错,如下:

<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00007FF73231012F node_api_throw_syntax_error+175407
 2: 00007FF732295AF6 SSL_get_quiet_shutdown+63110
 3: 00007FF732296EB2 SSL_get_quiet_shutdown+68162
 4: 00007FF732D2FF24 v8::Isolate::ReportExternalAllocationLimitReached+116
 5: 00007FF732D1B282 v8::Isolate::Exit+674
 6: 00007FF732B9D0DC v8::internal::EmbedderStackStateScope::ExplicitScopeForTesting+124
 7: 00007FF732BAA3BD v8::internal::Heap::PublishPendingAllocations+1117
 8: 00007FF732BA7447 v8::internal::Heap::PageFlagsAreConsistent+3367
 9: 00007FF732B99B77 v8::internal::Heap::CollectGarbage+2039
10: 00007FF732BB0533 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath+2099
11: 00007FF732BB0DDD v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath+93
12: 00007FF732BC0613 v8::internal::Factory::NewFillerObject+851
13: 00007FF7328B1BC5 v8::internal::DateCache::Weekday+1349
14: 00007FF732DCD5C1 v8::internal::SetupIsolateDelegate::SetupHeap+558193
15: 00007FF732DA0833 v8::internal::SetupIsolateDelegate::SetupHeap+374499
16: 00007FF732D4E990 v8::internal::SetupIsolateDelegate::SetupHeap+38976
17: 00007FF6B4B75385
error Command failed with exit code 134.

解决方法

1、打开【环境变量设置】窗口,位置在:控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量

2、新建一个名为NODE_OPTIONS、值为--max-old-space-size=xxxx的变量,xxxx是内存MB大小,例如4096就是4GB:
在这里插入图片描述

3、点击 确定 退出【环境变量设置】窗口

4、打开一个新的 PowerShell 命令窗口,执行以下命令查看环境变量是否生效:

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

在这里插入图片描述
显示为4144,证明已经生效

问:为什么环境变量里设置的值是4096,但却显示4144,比设置的值要大一些?
答:暂时不清楚,后面再研究,或者知道原因的小伙伴可以在评论区留言:)

5、重新构建项目,成功!

其它问题

1、如果设置环境变量后,构建还是失败,可以继续调大变量的值,4GB不够就加大到8GB,如此类推。注意修改完变量后,需要打开新的 PowerShell 窗口才会生效。

2、尽量不要使用vscode自带的终端窗口构建项目,因为设置了环境变量后,在vscode的终端窗口里是不会生效的,除非重启系统。解决方法可以参阅:windows 修改环境变量后在 vscode 的终端不生效的解决方法

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值