Windows 10で実行しているreactjs/TypeScriptプロジェクトがあります。私はts-scriptsでビルドしようとしています
"rimraf ../wwwroot/* && react-scripts-ts build && copyfiles ./build/**/* ../wwwroot/ -u 1
これは以前は問題なく動作していましたが、node_modules-folderを削除したときに、npm install-commandを再実行すると、上記のコマンドでエラーメッセージが表示されます
致命的なエラー:ヒープ制限に近いマークコンパクトが無効です割り当てに失敗しました-JavaScriptヒープがメモリ不足です
なぜか分かりません。 Iveを見た後グーグル
NODE_OPTIONS = "– max-old-space-size = 2048"ですが、これをどこに置くかわかりません
完全なエラーメッセージ
最後のいくつかのGC
[11376:0000024682F49880] 60039 ms: Mark-sweep 2034.1 (2085.2) -> 2033.7 (2085.2) MB, 1029.4 / 0.0 ms (average mu = 0.073, current mu = 0.006) allocation failure scavenge might not succeed
[11376:0000024682F49880] 61094 ms: Mark-sweep 2034.4 (2085.2) -> 2034.1 (2085.7) MB, 1047.7 / 0.0 ms (average mu = 0.039, current mu = 0.007) allocation failure scavenge might not succeed
JS stacktrace
==== JS stack trace =========================================
0: ExitFrame [pc: 000001CDF84DC5C1]
Security context: 0x007044b9e6e1 <JSObject>
1: bindChildrenWorker(aka bindChildrenWorker) [000001AD1C0ACD59] [C:\Users\robcar\source\repos\Boost\Boost.Web\ClientApp\node_modules\TypeScript\lib\TypeScript.js:~27657] [pc=000001CDF8FA47CA](this=0x03da79d826f1 <undefined>,node=0x034b8724ab71 <NodeObject map = 000000660468F931>)
2: bind(aka bind) [000001AD1C0AE2D9] [C:\Users\robcar\source\repos\B...
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF6B5EA121A v8::internal::GCIdleTimeHandler::GCIdleTimeHandler+4810
2: 00007FF6B5E7A5B6 node::MakeCallback+4518
3: 00007FF6B5E7AFA0 node_module_register+2160
4: 00007FF6B610B3EE v8::internal::FatalProcessOutOfMemory+846
5: 00007FF6B610B31F v8::internal::FatalProcessOutOfMemory+639
6: 00007FF6B6649304 v8::internal::Heap::MaxHeapGrowingFactor+11476
7: 00007FF6B663FA67 v8::internal::ScavengeJob::operator=+25543
8: 00007FF6B663DFDC v8::internal::ScavengeJob::operator=+18748
9: 00007FF6B6646F57 v8::internal::Heap::MaxHeapGrowingFactor+2343
10: 00007FF6B6646FD6 v8::internal::Heap::MaxHeapGrowingFactor+2470
11: 00007FF6B61E9DD7 v8::internal::Factory::NewFillerObject+55
12: 00007FF6B6281ABA v8::internal::WasmJs::Install+29530
13: 000001CDF84DC5C1
私はしばらくの間この問題に直面しています。この問題は、大きな.jsファイルである依存関係またはコンポーネントが原因である可能性が高いです。現在、問題を解決するために このパッケージ を使用しています。
あなたは基本的にそれをグローバルにインストールします:
npm install -g increase-memory-limit
次に、プロジェクトルート内から実行します。
increase-memory-limit
これにより、--max-old-space-size=4096
ファイル内のすべてのノード呼び出しにnode_modules/.bin/*
が追加されます。
私が使用した解決策は、ノードのjsバージョンをv1からv12にアップグレードすることでした。
コマンド export NODE_OPTIONS=--max_old_space_size=4096
は機能しますが、制限があります。本番ビルドを実行するには、マシンに十分なメモリが必要です。
Windowsでも同じ問題が発生しました。解決策は、npm run buildを実行する前にNODE_OPTIONS変数を設定することでした。この変数を設定するには、単にset NODE_OPTIONS=--max_old_space_size=8192