首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ionic 3 JavaScript堆内存不足

Ionic 3 JavaScript堆内存不足
EN

Stack Overflow用户
提问于 2019-04-20 10:13:00
回答 2查看 1K关注 0票数 0

我正在开发一个离子安卓应用程序,它非常庞大。当我运行ionic build --prod时,我得到了ff错误:

代码语言:javascript
复制
--- Last few GCs --->

[4220:000002B5705AEDC0]   185812 ms: Mark-sweep 1382.2 (1425.5) -> 1381.6 (1424.5) MB, 1157.1 / 0.0 ms  (average mu = 0.092, current mu = 0.040) allocation failure scavenge might not succeed
[4220:000002B5705AEDC0]   185823 ms: Scavenge 1382.4 (1424.5) -> 1381.8 (1425.0) MB, 6.1 / 0.0 ms  (average mu = 0.092, current mu = 0.040) allocation failure
[4220:000002B5705AEDC0]   185831 ms: Scavenge 1382.6 (1425.0) -> 1382.0 (1425.5) MB, 4.2 / 0.0 ms  (average mu = 0.092, current mu = 0.040) allocation failure


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 000002EC1505C5C1]
Security context: 0x00f46dd9e6e1 <JSObject>
    1: symbolToName(aka symbolToName) [00000239DECFEC99] [C:\Users\Juls\Desktop\Chapel\node_modules\@angular-devkit\build-optimizer\node_modules\typescript\lib\typescript.js:~26322] [pc=000002EC16294DD8](this=0x027dfb2826f1 <undefined>,symbol=0x001449973021 <SymbolObject map = 0000006B919CC659>,context=0x0251729a2041 <Object map = 0000006B9199D6E9>,meaning...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 00007FF63489ECF5
 2: 00007FF6348781A6
 3: 00007FF634878BB0
 4: 00007FF634B09AAE
 5: 00007FF634B099DF
 6: 00007FF635047724
 7: 00007FF63503DE87
 8: 00007FF63503C3FC
 9: 00007FF635045377
10: 00007FF6350453F6
11: 00007FF634BE84B7
12: 00007FF634C8019A
13: 000002EC1505C5C1
[ERROR] An error occurred while running subprocess ionic-app-scripts.

        ionic-app-scripts build --prod exited with exit code 134.

        Re-running this command with the --verbose flag may provide more information.

我已经在互联网上尝试了所有可能的解决方案,但似乎都不起作用。以下是我尝试过但没有解决问题的方法的列表:

代码语言:javascript
复制
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe" "--max_old_space_size=8192" "%~dp0\node_modules\@angular\cli\bin\ng" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node "--max_old_space_size=8192" "%~dp0\node_modules\@angular\cli\bin\ng" %*
)

为此编辑node.cmd

运行export NODE_OPTIONS=--max_old_space_size=4096 before running ionic build --prod将大小错误增加到8096,并且仍然打印上述错误消息。

修改ng.cmd:

代码语言:javascript
复制
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe" --max_old_space_size=5048 "%~dp0\..\angular-cli\bin\ng" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node --max_old_space_size=5048 "%~dp0\..\angular-cli\bin\ng" %*
)

修改ngc.cmd:

代码语言:javascript
复制
@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe" --max_old_space_size=5048 "%~dp0\..\@angular\compiler-cli\src\main.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node --max_old_space_size=5048 "%~dp0\..\@angular\compiler-cli\src\main.js" %*
)

以下是一系列技术信息,可帮助您了解如何操作:

代码语言:javascript
复制
Ionic:

   ionic (Ionic CLI)  : 4.12.0 (C:\Users\Juls\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.3
   @ionic/app-scripts : 3.2.1

Cordova:

   cordova (Cordova CLI) : 9.0.0
   Cordova Platforms     : android 8.0.0
   Cordova Plugins       : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 3.1.2, (and 21 other plugins)

System:

   Android SDK Tools : 26.1.1 (C:\Users\Juls\AppData\Local\Android\Sdk)
   NodeJS            : v10.14.1 (C:\Program Files\nodejs\node.exe)
   npm               : 6.4.1
   OS                : Windows 10
EN

回答 2

Stack Overflow用户

发布于 2019-04-20 14:53:18

当@angular-devkit/build-optimizer的版本很旧时,我经常注意到这一点。我会将其至少更新到0.11.4版本。

尝试使用npm i @angular-devkit/build-optimizer@0.11.4或更新的版本

票数 1
EN

Stack Overflow用户

发布于 2019-07-16 01:41:24

试着把你的app-script降级到3.1.4,这对我很有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55769671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档