複雑なNode.jsアプリケーションを作成すると、「JavaScriptヒープメモリ不足」エラーに頻繁に遭遇することがあります。また、他のプロジェクトからダウンロードしたプログラムを実行した場合にも発生することがあります。このエラーとその解決策については、このガイドをご覧ください。
Node.js のメモリ管理方法
Node.jsは、アプリケーションが過剰なメモリ消費によってシステム全体のパフォーマンスを低下させることを防ぐため、デフォルトでメモリ制限を設定しています。実際の制限は、システムのアーキテクチャとNode.jsのバージョンによって異なります。

最新の64ビットNode.jsバージョンでは、ヒープメモリは4GBに制限されています。ヒープメモリは、古い領域と新しい領域という2つの領域で構成されています。古い領域は、Node.jsが古いオブジェクトを保存する場所です。そのサイズは、–max-old-space-sizeフラグによって制御されます。
アプリケーションが大量のオブジェクトを生成すると、古いヒープ領域がすぐにいっぱいになり、Node.js が「JavaScript ヒープのメモリ不足」というエラー メッセージを表示してクラッシュすることがあります。
問題を解決する方法
このエラーを回避するには、Node.js によって設定されたメモリ制限を –max-old-space-size フラグで引き上げます。この値(MB単位)が新しいメモリ制限となります。
node –max-old-space-size=8192 yourscript.js
このコマンドにより、Node.js は最大 8GB (8192MB) のメモリを割り当てて yourscript.js を実行できるようになります。このフラグを永続的に設定したい場合は、システムの環境変数として追加してください。
Linux/macOS では、次のコマンドを実行します。
エクスポート NODE_OPTIONS=–max-old-space-size=8192
Windowsの場合:コントロールパネルを開き、「システム」を選択します。「システムの詳細設定」タブで、「環境変数」をクリックし、「新規」を選択します。
変数名と変数値フィールドにそれぞれ「NODE_OPTIONS」と「–max-old-space-size=8192」と入力します。最後に「Enter」をクリックします。
結論
「JavaScriptヒープメモリ不足」エラーは、Node.jsプログラムが古いヒープ領域でメモリを過剰に消費した場合に発生します。–max-old-space-sizeフラグで上限を上げることで、この問題を回避できます。同様のエラーについて詳しくは、ITtutoriaをご覧ください。