ionic3 - 打包时加"--prod"参数导致内存溢出

2019-03-29  本文已影响0人  JoyoDuan

说明

打包的时候报了内存溢出的错误(不加prod的时候不会内存溢出)

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

解决方法

node v8.0+:

windows:

set NODE_OPTIONS=--max_old_space_size=8192

mac:

export NODE_OPTIONS=--max_old_space_size=8192

终极解决方法(推荐):

increase-memory-limit

  1. 全局安装increase-memory-limit

安装命令:npm install -g increase-memory-limit

全局安装increase-memory-limit.png
  1. 在项目根目录执行increase-memory-limit命令

该命令会在node_modules/.bin/目录下所有的文件中加入--max-old-space-size=4096,即可解决

项目根目录执行increase-memory-limit.png

方法一:

通过修改ng.cmdngc.cmd两个文件中添加--max-old-space-size解决

  1. 修改node_modules/.bin下的ng.cmd
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\@angular\cli\bin\ng" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  --max-old-space-size=8192  "%~dp0\..\@angular\cli\bin\ng" %*
)
修改ng.cmd.png
  1. 修改node_modules/.bin下的ngc.cmd
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\..\@angular\compiler-cli\src\main.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  --max-old-space-size=8192  "%~dp0\..\@angular\compiler-cli\src\main.js" %*
)
修改ngc.cmd.png

方法二:

修改package.json文件

  1. package.json文件scripts中添加命令:
"prod": "node --max-old-space-size=8192 node_modules\\@angular\\cli\\bin\\ng build --prod"
修改package.json.png
  1. 使用命令npm run prod打包

Ps: 这里npm run prod相当于--prod

上一篇下一篇

猜你喜欢

热点阅读