ノードのメモリ リークが枯渇しました: 致命的なエラー: ヒープ制限に近い無効なマーク圧縮 割り当てに失敗しました - JavaScript

最初に目についたのはメモリ リークで、問題を特定しました。その後、Baidu、csdn 検索に夢中になって 3 つの方法を試し、最後の 1 つがうまくいきました。

 

1):

npm コマンド実行時のエラー: 致命的なエラー: ヒープ制限に近い無効なマーク圧縮 割り当てに失敗しました - JavaScript ヒープが不足しています

文字通りの意味: JavaScript ヒープのメモリが不足しています。Node は V8 エンジンに基づいているため、Node で JavaScript を通じてメモリを使用する場合、メモリの一部しか使用できません。
C:\Users{Account}\ にある .npmrc ファイルを削除しようとしましたが、うまくいきませんでした。

解決策:
cancel-memory-limit プラグインを使用してプラグインをインストールします: npm install -g raise-memory-limit
コマンドを実行します: npxcross-env LIMIT=4096 raise-memory-limit
最後に次を実行します: npm start to startプロジェクト
———— ————————————

2):

ノードのメモリ リーク枯渇の解決策:

最新の Vue スキャフォールディング vue-cli を使用して構築されたプロジェクトを開発する際、頻繁なコード変更によりメモリオーバーフローが発生し、次のようなメッセージが表示されました:
致命的なエラー: ヒープ制限に近い無効なマーク圧縮 割り当てに失敗しました
(致命的なエラー: JavaScript ヒープを使用する場合) NPM」コマンドはメモリ不足になります)

3 つの解決策:

1 つは、ノードで許可されるメモリの量を増やす必要があることです。

これをグローバルに行うには、
1. cmd ウィンドウを開きます
。 2. 実行します setx NODE_OPTIONS --max_old_space_size=10240
。 3. すべての cmd/コード エディタを閉じます。
4. cmd を再度開き、ノード コマンド (npm など) を再度実行します
。 —————————————————————————————————————
第二に、直接取材は
単純かつ粗雑であり、スクリプトを直接置き換えます。 package.json 内のserveコマンドの内容:

serve" : "node --max_old_space_size=4096 node_modules/.bin/vue-cli-service serve --open

開発中にnpm runserveまたはyarnserveを実行するだけです。
———————————————————————————————————————————
3. エレガント
以上のカバー力これらのメソッドの唯一の違いは、vue-cli-service パッケージのパスを記述する必要がないことです。コードはより洗練されており、パッケージ アドレスの影響を受けません。

全局安装npx: npm i -g npx

package.json のスクリプトの下にあるserve命令の内容を直接置き換えます。

serve": "npx --max_old_space_size=4096 vue-cli-service serve
开发时运行npm run serve或yarn serve

3):

解決策:パッケージ.json  に追加し、 increase-memory-limitを使用して  問題を解決します。

01) npm install increase-memory-limit #本项目中使用 [ 选择自己的方式 ]   # npm install -g increase-memory-limit 全局使用

02) npm install --save cross-env
03) 修改 package.json 如下:[ LIMIT大小自己设置 ]

"scripts": {
    "fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit"
  },

04) npm run fix-memory-limit(只需执行一次即可)

おすすめ

転載: blog.csdn.net/qq_42351675/article/details/131704901