vue項目熱更新內存溢出問題

vue項目啟動后,每次修改部分代碼,再編譯和打包時會頻繁內存溢出,都會導致項目運行中斷。有的同事是時不時會中斷,我是每次都會中斷

報錯信息如下:

> node –max_old_space_size=4096 webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

module.js:549
    throw err;
    ^

Error: Cannot find module 'F:\work\路徑\路徑\vue\–max_old_space_size=4096'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! house-vue@1.0.0 dev: `node –max_old_space_size=4096 webpack-dev-server --inline --progress --config build/webpack.dev.conf.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the house-vue@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     D:\Program Files\nodejs\X64\node_cache\_logs\2018-09-04T07_52_06_975Z-debug.log

同事們的解決方法(見鏈接):
https://www.cnblogs.com/maqingyuan/p/10636920.html
但對于我的電腦不適用,除了安裝fix-memory-limit插件之外,還另外做了以下配置

// 找到以下路徑
./node_modules/.bin/webpack-dev-server.cmd

// 在node后面增加    --max-old-space-size=4096
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\webpack-dev-server\bin\webpack-dev-server.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  --max-old-space-size=4096 "%~dp0\..\webpack-dev-server\bin\webpack-dev-server.js" %*
)

至此解決項目熱更新時,每次保存會報錯的問題。

哦豁.jpg

但直到上周調試項目,刪除了node_modules,并重新安裝依賴后又開始出現熱加載內存溢出的問題,但是之前安裝的插件和修改的配置依舊在(無語)。

懵.jpg

毀滅吧.jpg

主要報錯信息:Ineffective mark-compacts near heap limit Allocation failed - JavaScript hea,完整如下:

 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed 
    - 
    JavaScript heap out of memory
    1: 000000013F56F04A 
       v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+5114
    2: 000000013F54A0C6 node::MakeCallback+4518
    3: 000000013F54AA30 node_module_register+2032
    4: 000000013F7D20EE v8::internal::FatalProcessOutOfMemory+846
    5: 000000013F7D201F v8::internal::FatalProcessOutOfMemory+639


    6: 000000013FCF2BC4 v8::internal::Heap::MaxHeapGrowingFactor+9556

     7: 000000013FCE9C46 v8::internal::ScavengeJob::operator=+24310
     8: 000000013FCE829C v8::internal::ScavengeJob::operator=+17740
     9: 000000013FCEE1B7 v8::internal::Heap::CreateFillerObjectAt+1175
    10: 000000013FB7C5B3 
    v8::internal::interpreter::Interpreter::GetDispatchCounters
    Object+78451
    11: 000000013F4D1132 
        v8::internal::StackGuard::ArchiveSpacePerThread+52082
    12: 000000013F4D17F3 
        v8::internal::StackGuard::ArchiveSpacePerThread+53811
    13: 000000013F5B1474 uv_dlerror+2436
    14: 000000013F5B21D8 uv_run+232

15: 000000013F55128E node::NewContext+1390
16: 000000013F55189B node::NewIsolate+603
17: 000000013F551D07 node::Start+839
18: 000000013F40935C node::MultiIsolatePlatform::MultiIsolatePlatform+604
19: 000000013FFAA93C 
   v8::internal::compiler::OperationTyper::ToBoolean+134796
20: 0000000076D3555D BaseThreadInitThunk+13
21: 0000000076F9385D RtlUserThreadStart+29

<--- Last few GCs --->

[13304:0000000000182610]   135335 ms: Mark-sweep 1396.6 (1426.7) -> 1396.6 (1424
.7) MB, 2368.0 / 0.0 ms  (+ 0.0 ms in 1 steps since start of marking, biggest st
ep 0.0 ms, walltime since start of marking 2368 ms) (average mu = 0.099, current
 mu = 0.035) fi[13304:0000000000182610]   135404 ms: Scavenge 1397.6 (1424.7) ->
 1397.1 (1428.2) MB, 3.7 / 0.0 ms  (average mu = 0.099, current mu = 0.035) allo
cation failure


<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - 
JavaS
cript heap out of memory
 1: 000000013FD7F04A v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+5114
 2: 000000013FD5A0C6 node::MakeCallback+4518
 3: 000000013FD5AA30 node_module_register+2032
 4: 000000013FFE20EE v8::internal::FatalProcessOutOfMemory+846
 5: 000000013FFE201F v8::internal::FatalProcessOutOfMemory+639
 6: 0000000140502BC4 v8::internal::Heap::MaxHeapGrowingFactor+9556
 7: 00000001404F9C46 v8::internal::ScavengeJob::operator=+24310
 8: 00000001404F829C v8::internal::ScavengeJob::operator=+17740
 9: 00000001404FE1B7 v8::internal::Heap::CreateFillerObjectAt+1175
10: 000000014038C5B3 
    v8::internal::interpreter::Interpreter::GetDispatchCounters
    Object+78451
11: 000000013FCE1132 v8::internal::StackGuard::ArchiveSpacePerThread+52082
12: 000000013FCE17F3 v8::internal::StackGuard::ArchiveSpacePerThread+53811
13: 000000013FDC1474 uv_dlerror+2436
14: 000000013FDC21D8 uv_run+232
15: 000000013FD6128E node::NewContext+1390
16: 000000013FD6189B node::NewIsolate+603
17: 000000013FD61D07 node::Start+839
18: 000000013FC1935C node::MultiIsolatePlatform::MultiIsolatePlatform+604
19: 00000001407BA93C 
   v8::internal::compiler::OperationTyper::ToBoolean+134796
20: 0000000076D3555D BaseThreadInitThunk+13
21: 0000000076F9385D RtlUserThreadStart+29

各種百度后,大多建議安裝fix-memory-limit,或者在package.json文件的script調試中,增加--max-old-space-size=4096。
因為fix-memory-limit已經存在,嘗試直接執(zhí)行npm run fix-memory-limit命令,再啟動項目發(fā)現又可以了。

耶.jpg
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容