javascript
FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap
有一個(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)題。
- 上一篇: d3dcompiler_47.dll:
- 下一篇: 分析ajax爬取果壳网