700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 内存溢出 打包失败CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

内存溢出 打包失败CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

时间:2018-04-30 08:05:01

相关推荐

内存溢出 打包失败CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

1、vue项目打包,内存溢出报错

报错描述

CALL_AND_RETRY_LAST Allocation failed -JavaScript heap out of memory(内存溢出)

原因分析

报错中有句关键的话,CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory JavaScript堆内存不足,这里说的 JavaScript 其实就是 Node,我们都知道 Node 是基于V8引擎,在一般的后端开发语言中,在基本的内存使用上没有什么限制,但是在 Node 中通过 JavaScript 使用内存时只能使用部分内存(64位系统下约为1.4 GB,32位系统下约为0.7 GB),这就是我们编译项目时为什么会出现内存泄露了,因为前端项目如果非常的庞大,webpack 编译时就会占用很多的系统资源如果超出了V8对 Node 默认的内存限制大小就会出现刚刚我截图的那个错误了

解决方法

传递 --max-old-space-size 来调整内存大小的使用限制

vue直接在package.json中的命令中的node 后面写上 – --max_old_space_size=4096就好了,我这里设置的内存大小是4G,这个具体的大小可以根据自己的项目情况来设置就好了。

"build": "node --max_old_space_size=4096 build/build.js"

至于说React和Angular如何添加,请参考

/a/1190000010437948

2、vue运行项目(npm run dev),热更新时内存溢出导致项目运行失败

解决方法一 在node_modules中的webpack-dev-server.cmd中添加max-old-space-size

windows 下的 vue 项目可以找到以下路径

./node_modules/.bin/webpack-dev-server.cmd

添加 --max-old-space-size=4096

@SETLOCAL@IF EXIST "%~dp0\node.exe" (@SET "_prog=%~dp0\node.exe") ELSE (@SET "_prog=node"@SET PATHEXT=%PATHEXT:;.JS;=;%)"%_prog%" --max-old-space-size=4096 "%~dp0\..\_webpack-dev-server@2.11.5@webpack-dev-server\bin\webpack-dev-server.js" %*@ENDLOCAL

解决方法二 修改package.json中的scripts中的dev命令(本质也是添加max-old-space-size)

"dev":"node --max_old_space_size=4096 node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --progress --config build/webpack.dev.conf.js",

参考链接一

/liub37/article/details/82866763?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-17&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-17

参考链接二

/a/1190000010437948

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。