webpack打包、編譯、熱更新Node內存不足問題解決
日常先上結論
- 上班的打工開發(fā)可以直接在這里看解決方案
- 修復young object promotion failed Allocation failed - JavaScript heap out of memory報錯,全局安裝increase-memory-limit這個包就可以解決,安裝完后在項目控制臺執(zhí)行increase-memory-limit,然后再運行項目就完事啦,如果遇到其他報錯,可以直接看下面第2項解決方案。
- 所有Webpack編譯、打包、熱更新等等問題,只要是遇到上述報錯都可以用這個解決
問題背景
最近接手一個公司買過來的項目(燙手山芋),項目規(guī)模比常規(guī)后臺管理項目稍大一點。剛接手一頓操作npm i, npm run dev,安裝依賴,運行項目,沒有任何問題。這時候我還稍微放松了一點,心想好像這項目還沒什么坑。但是當我瀏覽系統、熟悉業(yè)務時出現了BUG,于是回到代碼打個console.log調試一下,常規(guī)操作,小問題。剛ctrl+s保存切到頁面想看報錯信息發(fā)現頁面已經蹦了,眉頭一皺,感覺不對,console.log也能讓頁面蹦了嗎?切回vscode就看到控制臺紅紅的大字,webpack-dev-serve也蹦了。我又開始懷疑這項目了,console.log也能讓項目崩潰,還能玩嗎?買的別人公司的項目果然有坑。
報錯信息:FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
排查問題
往上看控制臺報錯信息,看到JS stacktrace、JavaScript heap out of memory,意識到應該是內存不夠了
PS:young object promotion failed Allocation failed - JavaScript heap out of memory
這句話的意思是JavaScript在將新生區(qū)對象提升至老生區(qū)的時候出錯了 - 原因是JavaScript堆內存不夠,
這里是V8對GC的優(yōu)化,將堆劃分為新生區(qū)和老生區(qū),新生區(qū)就是創(chuàng)建不久的對象唄,老生區(qū)就是已經存在一段時間的對象,將堆空間劃分為新生老生兩個區(qū)是為了減少老生區(qū)的GC次數,畢竟GC也會影響程序運行,要盡量減少。具體可以自行百度V8 GC優(yōu)化策略。
打開任務控制臺,看內存占用還有剩余呀。那不是電腦內存不夠,那就是Node可調用的系統內存不夠用了
打開百度一搜Node可調用系統內存有多少,果然出來Node基于V8引擎,V8在64位系統最大內存為1.4G左右,而在32位系統只有0.7G左右
既然知道了問題所在,那么就好解決了,面向百度編程,百度搜索如何解決Node運行內存不足的問題馬上就有了解決辦法,increase-memory-limit可以提高Node占用內存。npm i -g increase-memory-limit
安裝包,然后在項目目錄執(zhí)行increase-memory-limit
,執(zhí)行成功
再執(zhí)行npm run dev又來了一個報錯,果然程序是一種修復一個BUG要再修復其他十幾個BUG的東西,可以按如下操作解決問題,執(zhí)行的時候多了一個""系統識別不了,去掉就可以了
總結
到此這篇關于webpack打包、編譯、熱更新Node內存不足問題解決的文章就介紹到這了,更多相關webpack打包編譯熱更新Node內存不足內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
nodejs轉換音頻文件格式并壓縮導出zip格式(vscode語音插件開發(fā))
FFmpeg是一套開源的音視頻處理工具,通俗地講,可以對音視頻文件進行剪切、拼接、水印、轉碼等處理,這篇文章主要介紹了nodejs轉換音頻文件格式并壓縮導出zip格式(vscode語音插件開發(fā)),需要的朋友可以參考下2023-05-05用node-webkit把web應用打包成桌面應用(windows環(huán)境)
這篇文章主要介紹了windows環(huán)境下用node-webkit把web應用打包成桌面應用的教程,需要的朋友可以參考下2018-02-02node-red教程之dashboard簡介與輸入型儀表板控件的使用
Node-red支持自定義節(jié)點,當然也就支持自定義圖形化的節(jié)點。也有優(yōu)秀的開發(fā)者把自己建立的圖形化節(jié)點無償分享。這里給出一個股票界面的例子,讓大家看一看優(yōu)秀的node-red界面能做到什么樣子2022-01-01