[解決済み] NODE_OPTIONS="-max-old-space-size=2048"」はどこに設定すればいいのでしょうか?
質問
アプリケーションで "npm start" を実行すると、次のようなエラーが発生します。 FATAL ERROR: Ineffective mark-compacts near heap limit 割り当てに失敗しました - JavaScript ヒープがメモリ不足です。
ネットに投稿された解決策のほとんどは、NODE_OPTIONS="-max-old-space-size=2048"でメモリを増加させることです。しかし、これをどこに設定すればいいのか見当もつきません。いくつかの投稿では、私のプロジェクトにはない.bashrcファイルについて話しています。また、私はWindowsシステム上にいます。npm start"コマンドは、package.jsonで設定されたように、"npm run build-semantic && react-scripts start"を実行します。
解決方法は?
このフラグを使用する方法は複数考えられます。ここでは8GBを例にしていますが、プロジェクトに応じて選択してください。
最初のオプション
もともとOPが探していたのは
環境変数
. その
NODE_OPTIONS --max-old-space-size
環境変数により、Nodeの最大ヒープサイズを増やすことができます。環境変数を設定することで、Nodeが環境からこの値を読み取ることができるため、Nodeコマンドを実行するたびに引数としてこの値を渡す必要はありません。これはグローバルな値として設定され、すべてのNodeプロセスで利用することができます。
環境変数の設定方法は、OSによって異なります。これについては、以下の2つのSOポストを参照してください。
- リナックス : LinuxでBashを使って環境変数を設定する
- ウィンドウズ : Windowsから環境変数を設定する方法
要約すると
NODE_OPTIONS
.
export NODE_OPTIONS="--max-old-space-size=8192"
このコマンドをターミナルセッションに置くと、新しいセッションのたびに実行する必要があります。それを避けるために、シェルスクリプトファイルにこのコマンドを記述しておくと、ターミナルが自動的にそれを読み込んでくれるようになります。
OPで述べた.bashrcファイルはLinux環境にも存在し、ほとんどのコメントで
bashを再読み込みする
のような手っ取り早い方法として
source ~/.bashrc
で、現在のセッションの env vars をロードします。ターミナルを再起動すればいつでも再読み込みできますが、前者の方が好ましいです! 繰り返しますが、Windowsを使用している場合は無視してください。
第二の選択肢
さて、環境変数を設定するのが好ましくない場合は、常に
--max-old-space-size
のどちらか、またはnodeコマンドを実行する際に使用します。
Nodejs.orgのドキュメントからの例
$ node --max-old-space-size=8192 index.js
第3の選択肢
あるいは、OPさんが既に回答されているように、プロジェクト単位で設定することも可能ですが、プロジェクトによって実装が異なる可能性があります。
について
npm
スクリプトは、この Git のコメントで答えられます。
npm を実行するときに --max-old-space-size を設定する最適な方法
(
私は、それは
hyphens
ではなく
underscore
):
"scripts":
{
"start": "cross-env NODE_OPTIONS=--max-old-space-size=8192 webpack"
}
Angularのプロジェクトでは、次のように定義することができます。
"scripts":
{
"build-prod": "node --max-old-space-size=8192 ./node_modules/@angular/cli/bin/ng build --configuration=production"
}
関連
-
[解決済み】Node.jsのエラーECONNRESETをデバッグするにはどうすればよいですか?
-
[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。
-
[解決済み】 console.logの出力をどこに永久保存するか?
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み】npx コマンドが見つかりません。
-
[解決済み】MongoDBでコレクションを日付で並べ替えるには?
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み] Node.jsのホスト名/IPが証明書のaltnamesと一致しない
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 console.logの出力をどこに永久保存するか?
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] joiライブラリを使用して2つの時間を比較する方法
-
[解決済み] npm install エラー - ローカルの発行者証明書を取得できません。
-
[解決済み] nodejs - http.requestでresponse.writeを使用する場合、第一引数は文字列またはBufferでなければなりません。
-
[解決済み] MongoNetworkError: 最初の接続でサーバー [localhost:27017] への接続に失敗 [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017] 。
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] Macでポート3000をロックしているプロセスを見つける(そして殺す)【終了