日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap

發(fā)布時(shí)間:2024/3/12 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有一個(gè)angular的項(xiàng)目,工程比較大,在一個(gè)內(nèi)存為8G的筆記本上運(yùn)行打包命令失敗,報(bào)錯(cuò):

FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory

原因是內(nèi)存不足,需要加大V8默認(rèn)的內(nèi)存限制

–max-old-space-size

以下內(nèi)容來(lái)自http://nodejs.cn/api v18.7.0版本的說(shuō)明

Sets the max memory size of V8’s old memory section. As memory consumption approaches the limit, V8 will spend more time on garbage collection in an effort to free unused memory.

翻譯:設(shè)置 V8 舊內(nèi)存部分的最大內(nèi)存大小。 隨著內(nèi)存消耗接近極限,V8 會(huì)花更多的時(shí)間在垃圾回收上,以釋放未使用的內(nèi)存。

On a machine with 2 GiB of memory, consider setting this to 1536 (1.5 GiB) to leave some memory for other uses and avoid swapping.

$ node --max-old-space-size=1536 index.js

看網(wǎng)上有人給的建議是 添加 --max_old_space_size這個(gè)參數(shù),不知道具體是什么原因,也沒(méi)研究,這里采用的是–max-old-space-size

在VUE的項(xiàng)目中做過(guò)如下修改生效

在node_modules.bin下的webpack-dev-server 或者 webpack-dev-server.cmd 文件中添加 --max-old-space-size=4096,可以根據(jù)項(xiàng)目調(diào)整大小,添加到下圖箭頭所示位置

在angular項(xiàng)目中做的修改

1、 在package.json中scripts 部分運(yùn)行node命令的地方都加上–max-old-space-size=4096

"scripts": {"dev": "ng serve --port 4200 --open","dev:open": "ng serve --disableHostCheck --host 0.0.0.0 --port 4200 --open","build": "ng build --prod --outputPath=dist/web --base-href=/web/","build:dev": "node --max-old-space-size=4096 run.js dev & ng build --prod --outputPath=dist/web --base-href=/web/","copy": "node node_modules/ng-zorro-iop/copy.js","test": "ng test","lint": "ng lint","e2e": "ng e2e"},

2、在目錄node_modules/.bin下的ng.cmd和ngc.cmd文件中,添加 --max-old-space-size=4096

@ECHO off SETLOCAL CALL :find_dp0IF EXIST "%dp0%\node.exe" (SET "_prog=%dp0%\node.exe" ) ELSE (SET "_prog=node"SET PATHEXT=%PATHEXT:;.JS;=;% )"%_prog%" --max-old-space-size=4096 "%dp0%\..\@angular\cli\bin\ng" %* ENDLOCAL EXIT /b %errorlevel% :find_dp0 SET dp0=%~dp0 EXIT /b

總結(jié)

以上是生活随笔為你收集整理的FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。