致命的なエラー:CALL_AND_RETRY_LASTの割り当てに失敗しました-JavaScriptヒープのメモリが不足しています
コマンド実行時のエラー:ionic cordova build Android --prod
注:そのionic build Android、ionic run Androidおよびionicserveはすべて正常に動作します。
プロジェクトが大きくなると機能しなくなるというトピックをたくさん読みました。
号が到着する前日に働いていました。アプリを多言語に翻訳するためのファイルとJSONを追加したため、機能しなくなりました。
既知の問題ですか?解決策はありますか?
詳細を確認してください: https://youtu.be/oCN7iSt8rzg
添付のエラー画像:
イオン情報:
C:\ Users\AppData\Roaming\npmにあるionic.cmdファイルを-を追加して変更することで解決しましたmax_old_space_size。私は8096に設定しました。
@if EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" --max_old_space_size=8096 "%~dp0\node_modules\ionic\bin\ionic" %*
) ELSE (
@SETLOCAL
@set PATHEXT=%PATHEXT:;.JS;=;%
node --max_old_space_size=8096 "%~dp0\node_modules\ionic\bin\ionic" %*
)
頑張ってください!実際のソースを確認してください: https://github.com/ionic-team/ ionic-cli/issues/145
私のionic(Ionic CLI):3.20.0および@ ionic/app-scripts:3.1.8ですが、それでもエラーが発生していました。
Package.jsonのビルドスクリプトを更新してエラーを修正しました
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "node --max-old-space-size=2048 ./node_modules/.bin/ionic-app-scripts build",
"lint": "ionic-app-scripts lint",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
または
以下のコマンドを試してください。
$ Sudoノード--max-old-space-size = 4096/usr/local/bin/ionic cordova build Android --prod
また、このエラーが発生し、割り当てられたメモリを増やすことは、内部で問題が発生している可能性があるため、回避策であると自分に言い聞かせました。
Firebaseを使用している場合は、それが原因であることがわかります。
「^ 4.12.1」から「4.6.1」(キャレット記号なし)に変更し、npm install
を実行して、前述の先行バージョンにダウングレードしました。
その後、恐ろしい「メモリ不足のヒープ」エラーが発生することなく、ionic cordova build Android --prod
を実行することができました。
どうやら、4.12.1(そしておそらく他のもの)はメモリリークを持っているので、問題が発生しました。
お役に立てれば!
この問題はOPによって解決されていますが、これは一時的な回避策です。実際の問題は、プロジェクトに関係する文字列操作に関係しています。
OPは、プロジェクトに巨大なサイズのJSON文字列が含まれることをすでに述べているため、理想的な修正は、node-memwatchなどのツールを使用してビルド中のメモリ消費を追跡し、同じものを修正することです。ヒープサイズを約8GBに設定することは常に可能であるとは限らず、プロジェクトのさらなる機能強化に伴ってこれを増やす必要があります。
また、これに従って link 、最新のwebpackリリースでこれらの問題のいくつかが緩和されることを願っています。
更新:最新のIonic CLIバージョン3.5.0を使用してみることもできますが、いくつかの改善がある可能性があります