問題描述:
使用
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
打包就不會報內存溢出啦
參考資料: