问题描述

强两天在编译一个原本非常安静低调的vue工程是突然出现如下错误

 98% after emitting CopyPluginFATAL ERROR: CALL_AND_RETRY_LAST Allocation failed                                                                                                                 - JavaScript heap out of memory
 1: 00007FF633F10EFA v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4810
 2: 00007FF633EEA296 node::MakeCallback+4518
 3: 00007FF633EEAC80 node_module_register+2160
 4: 00007FF6341809BE v8::internal::FatalProcessOutOfMemory+846
 5: 00007FF6341808EF v8::internal::FatalProcessOutOfMemory+639
 6: 00007FF6346BE954 v8::internal::Heap::MaxHeapGrowingFactor+11476
 。。。。。。

解决方法

刚开始时还以为系统内存不够,果断关闭多余系统并重启系统,可惜居然还有无法用大招解决的问题。经过一番搜索后终于找到原因:webpack编译时会占用资源,此时如果vue工程太大,会导致webpack所占用资源超出了V8(node基于V8引擎)对node资源大小的限制,所以此时需要通过–max-old-space-size调整资源大小的限制,就可以解决这个问题。如下:

// node命令直接添加
node --max-old-space-size=4096  main.js

如果是通过vue-cli搭建的,那么可以在工程的package.json找到对应的命令进行修改,如下:

"scripts": {
    "dev": "npx --max_old_space_size=8192 vue-cli-service serve",
    ......
}

或者

"scripts": {
    "dev": "vue-cli-service serve --max_old_space_size=8192",
    ......
}
Logo

前往低代码交流专区

更多推荐