webpack:CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

最近用webpack熱加載項目時常常掛掉,並報
95% emittingFATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

此類錯誤,網上查了下,這是因爲編譯的時間內存泄漏,由於前端項目若是很是的龐大,webpack 編譯時就會佔用不少的系統資源,若是超出了V8對 Node 默認的內存限制大小就會出現這個錯誤了;解決辦法是咱們在Node 在啓動時能夠傳遞 --max-old-space-size 或 --max-new-space-size 來調整內存大小的使用限制;javascript

node --max-old-space-size=2048
node --max-new-space-size=2048 來調整內存大小的使用限制
知道解決辦法以後趕忙動手擼碼,打開package.json 中加入;可是我一打開個人package.json傻眼了,由於是用vue-cli生成的項目,運行開發環境命令中沒有node?
"scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js"
  },
由於webpack本身幫咱們封裝了 npm run dev的方法,網上大神解決了個人困惑;

一、打開node_modules文件夾,就是安裝node依賴包的這個文件夾;前端

二、打開.bin文件夾vue

3.找到webpack-dev-server.cmd;這個文件並用編輯器打開;打開後個人以下:java

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\_webpack-dev-server@2.9.7@webpack-dev-server\bin\webpack-dev-server.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node "%~dp0\..\_webpack-dev-server@2.9.7@webpack-dev-server\bin\webpack-dev-server.js" %*
)

這裏就有dev環境的node運行命令了,咱們只要在倒數第二行node後面加上上文提到的代碼就ok了;注意空格;node

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\_webpack-dev-server@2.9.7@webpack-dev-server\bin\webpack-dev-server.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  --max-old-space-size=4096  "%~dp0\..\_webpack-dev-server@2.9.7@webpack-dev-server\bin\webpack-dev-server.js" %*
)
完事