1. 程式人生 > >【Ionic2】Ionic2打包編譯時記憶體溢位問題

【Ionic2】Ionic2打包編譯時記憶體溢位問題

問題描述:

使用

ionic build android --prod

打包的時候報了記憶體溢位的錯誤

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

(不加prod的時候不會記憶體溢位)

解決方案:

運用v8引擎的舊屬性: --max_old_space_size 來修改記憶體上線

需要修改兩個檔案:

{project_path}/node_modules/.bin/ng.cmd

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  --max_old_space_size=7200 "%~dp0\..\@angular\cli\bin\ng" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  --max_old_space_size=7200 "%~dp0\..\@angular\cli\bin\ng" %*
)

{project_path}/node_modules/.bin/ngc.cmd

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  --max_old_space_size=7200 "%~dp0\..\@angular\compiler-cli\src\main.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  --max_old_space_size=7200 "%~dp0\..\@angular\compiler-cli\src\main.js" %*
)

注意 --max_old_space_size=7200這一段均為新加,總共需要在兩個檔案,4個地方新增

7200這個數值可以根據個人電腦配置設定,上限不超過個人電腦記憶體,樓主的電腦記憶體為8G,所以這裡寫7200

修改完這兩個檔案直接儲存後,

再使用

ionic build android --prod

打包就不會報記憶體溢位啦

參考資料: