Angular приложение неожиданно завершает работу - «куча JavaScript из памяти» - PullRequest
0 голосов
/ 30 октября 2018

При выполнении NG подачи с помощью Angular-Cli я внезапно испытываю эту ошибку. Что это значит и как я могу отследить ошибку?

Я играл с файлом angular.json, но до этого вообще не касался исходного кода.

Могу ли я получить дополнительную информацию об этой ошибке? Возможна ли отладка?

[8472:0000027E1D943100]   199982 ms: Mark-sweep 1244.7 (1484.0) -> 1244.6 (1488.0) MB, 1490.9 / 2.5 ms  allocation failure GC in old space requested
[8472:0000027E1D943100]   201455 ms: Mark-sweep 1244.6 (1488.0) -> 1244.5 (1446.5) MB, 1473.7 / 2.8 ms  last resort GC in old space requested
[8472:0000027E1D943100]   202974 ms: Mark-sweep 1244.5 (1446.5) -> 1244.5 (1439.5) MB, 1518.3 / 2.7 ms  last resort GC in old space requested


<--- JS stacktrace --->

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

Security context: 000000F103425879 <JSObject>
    1: push(this=00000396CD788A21 <JSArray[579629]>)
    2: /* anonymous */ [C:\Apache24\htdocs\myproject\node_modules\readdirp\readdirp.js:~177] [pc=0000006E6B5D6C9D](this=000002313C98C2F1 <JSGlobal Object>,err=000000088F582201 <null>,stat=000002E4C4DA0851 <Stats map = 000003BC493C0269>)
    3: /* anonymous */ [C:\Apache24\htdocs\myproject\node_modules\graceful-fs\polyfills.js:287] [bytecode=...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node_module_register
 2: v8::internal::FatalProcessOutOfMemory
 3: v8::internal::FatalProcessOutOfMemory
 4: v8::internal::Factory::NewUninitializedFixedArray
 5: v8::internal::WasmDebugInfo::SetupForTesting
 6: v8::internal::WasmDebugInfo::SetupForTesting
 7: v8::internal::WasmDebugInfo::SetupForTesting
 8: v8::internal::WasmDebugInfo::SetupForTesting
 9: v8::internal::SharedFunctionInfo::SetScript
10: v8::internal::JSReceiver::class_name
11: v8::internal::SourcePositionTableIterator::Advance
12: v8::internal::SourcePositionTableIterator::Advance
13: 0000006E6B4843C1

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

ОК, я думаю, что нашел причину, в файле angular.json моя часть "assets" выглядит так, как показано ниже, со ссылкой на внешний файл, который я хотел бы включить в сборку. При выполнении «ng serve» это кажется проблемой.

Мое решение состоит в том, чтобы исключить эту часть во время разработки и вернуть ее при сборке в производство.

Есть ли способ указать, что этот актив будет включен только при выполнении "build --prod"?

"assets": [
              "src/.htaccess",
              "src/favicon.ico",
              "src/assets",
              "src/api",
              "src/app/img",

  {"input": "C:/apache/htdocs/api",
   "glob": "apiconfig.php",
   "output": "apiconfig" }
]
0 голосов
/ 30 октября 2018

В старых версиях Angular это происходит на большой кодовой базе ... одним из возможных исправлений было сделать небольшой взлом файла ngc.cmd (для wondows) и увеличить

--max_old_space_size=8192

Надеюсь, это поможет вам

...