ویرگول
ورودثبت نام
Reihaneh dastres
Reihaneh dastres
خواندن ۱ دقیقه·۲ سال پیش

افزایش حافظه جاوااسکریپت(javascript heap out of memory)


اگه تابحال زمان بیلد گرفتن یا ران کردن پروژه ری اکت به همچین اروری برخوردی بیا اینجا که بهت بگم چیکار کنی.

از کجا بفهمیم مموری جاوااسکریپتمون چقدره؟

زمانی که دارید فرایند بیلد گرفتن رو طی میکنید تسک منیجر رو باز کنید و از قسمت details نود جی اس رو پیدا کنید و ببینید قبل اینکه به ارور بخورید مموریش تا چند میره مثلا چون مموری جی اس من ۲ گیگ بود تا ۲ میلیون میرفت.

ی روش ساده تر هم هست که میتونید با اجرای این کد تو ترمینال وی اس کد مقدار مموری رو لاگ بگیرید.

node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))'


برای رفع این ارور باید اپشن max_old_size رو به پروژتون اضافه کنید.

روش اول:

فایل package.json را باز کرده و کد زیر رو جایگزین scripts کنید

&quotscripts&quot: { &quotstart&quot: &quotreact-scripts --max_old_space_size=4096 start&quot, &quotbuild&quot: &quotreact-scripts --max_old_space_size=4096 build&quot, &quottest&quot: &quotreact-scripts test&quot, &quoteject&quot: &quotreact-scripts eject&quot }

نکته قابل توجه اینکه سایز به اینصورت محاسبه میشه:

اندازه ی دلخواه * ۱۰۲۴

من تو مثال بالا مموری رو به ۴ ارتقاع دادم

روش دوم:

مقدار generate_sourcemap رو فالس بذارید

Linux:

"build": "GENERATE_SOURCEMAP=false react-scripts build",

Windows:

"build": "set \"GENERATE_SOURCEMAP=false\" && react-scripts build",


روش سوم:

کد زیر را در ترمینال وی اس کد اجرا کنید:

Linux:

export NODE_OPTIONS="--max-old-space-size=4096"

Windows:

set NODE_OPTIONS=--max-old-space-size=4096


و اما روش آخر که خودم با این روش تونستم این ارور رو برطرف کنم

دستور زیر را تو ترمینال اجرا کنید:

$env:NODE_OPTIONS="--max-old-space-size=4096"


مرسی که تا اخرش خوندی امیدوارم این مقاله بدردت خورده باشه

max oldbuild quotold spacespace sizequot quotreact scripts
فرانت دولوپر(ری اکت)
شاید از این پست‌ها خوشتان بیاید