FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

刘超 13天前 ⋅ 135 阅读   编辑

一、描述

  执行npm run build,报如下错误

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: 00007FF69002232F napi_wrap+124543
 2: 00007FF68FFC36A6 v8::base::CPU::has_sse+34502
 3: 00007FF68FFC4366 v8::base::CPU::has_sse+37766
 4: 00007FF6907C8C5E v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF6907B0CA1 v8::SharedArrayBuffer::Externalize+833
 6: 00007FF69067E56C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436

二、分析

  1、使用increase-memory-limit插件,增加node服务器内存限制
  a、新增依赖包npm install --save-dev increase-memory-limit,或者在更新package.json后重新npm install全量更新依赖包
  b、在项目目录下,执行increase-memory-limit(只需执行一次即可)
  c、在package.json 文件,添加如下配置

"devDependencies": {
 "increase-memory-limit": "^1.0.6",
},
"scripts": {
 /* 添加 fix-memory-limit */
    "fix-memory-limit": "cross-env LIMIT=4096 increase-memory-limit"
  }

  d、先执行npm run fix-memory-limit让配置生效,然后再执行npm run build又报'"node --max-old-space-size=10240"' 不是内部或外部命令,也不是可运行的程序,该问题的解决方法就是:【win10系统】将node_modules/bin下的所有cmd文件中的【"%_prog%"】改为【%_prog%】,即去掉双引号

  e、再执行npm run build就正常了

  2、或通过package.json中的 "pro" 加大内存

"scripts": {
    "pro": "node --max_old_space_size=9000 build/build.js "
  }

三、解决方法

  方案:使用increase-memory-limit插件,增加node服务器内存限制
  在项目目录下,执行increase-memory-limit即可,如果报'"node --max-old-space-size=10240"' 不是内部或外部命令,也不是可运行的程序,【win10】将node_modules/bin下的所有cmd文件中的【"%_prog%"】改为【%_prog%】

四、参考文章
  1、https://www.jianshu.com/p/9a95fea329bf
  2、https://blog.csdn.net/weixin_42113124/article/details/94393671
  3、https://blog.csdn.net/genius_yym/article/details/80854729


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: