如何增加Ionic的Javascript堆大小

我正在使用--release--prod标志运行Ionic应用程序的内存不足问题。 不幸的是,当它接缝的时候,Node允许使用的内存空间对于这个过程是不够的,而且会产生下面的错误(可能在没有内存块可用于执行操作的情况下):

在这里输入图像说明

正如在这个答案中所build议的,我试图在构build命令之前利用package.json start脚本中的max_old_space_size标志无效。 主要是因为节点进程在设置标志后由Ionic CLI方式内部运行。

我也尝试用这个答案中build议的更大的堆大小来重新安装Ionic,但是这似乎只解决了Ionic软件包本身安装期间的内存限制问题,而不是通过CLI使用Ionic进行的任何后续操作。

在此先感谢您的帮助。 🙂

离子信息:

 cli packages: (D:\ionic\<...>\node_modules) @ionic/cli-utils : 1.9.2 ionic (Ionic CLI) : 3.9.2 global packages: Cordova CLI : 7.0.1 Gulp CLI : CLI version 3.9.1 Local version 3.9.1 local packages: @ionic/app-scripts : 2.1.4 Cordova Platforms : android 6.2.3 ios 4.5.0 Ionic Framework : ionic-angular 3.3.0 System: Android SDK Tools : 25.2.2 Node : v6.10.2 npm : 4.0.5 OS : Windows 7 

唯一的解决方法是在Ionic CLI启动进程时,增加内部Javascript堆的内存大小( 从Ionic的angular度来看 )。

@timothybclayton在Github上发表的关于ionic-app-scripts下的类似问题帮助我弄清楚了这一点。

但是,我必须以完全不同的方式来做,因为我有Nodist作为NodeJS的包pipe理器。 所以,我不得不去Nodist安装目录下的/bin文件夹,并调整ionic.cmd文件。

这就是ionic.cmd文件的外观,因为它现在已经允许ionic.cmd有足够的内存来执行这个过程:

 @IF EXIST "%~dp0\node.exe" ( "%~dp0\node.exe" --max_old_space_size=12288 "%~dp0\node_modules\ionic\bin\ionic" %* ) ELSE ( @SETLOCAL @SET PATHEXT=%PATHEXT:;.JS;=;% node --max_old_space_size=12288 "%~dp0\node_modules\ionic\bin\ionic" %* ) 

希望这可以帮助有类似问题的其他人,不仅是Ionic,还有NodeJS的其他内存密集型进程。