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" %*
)
完事