vue项目打包,内存溢出报错
vue项目打包,内存溢出报错1、vue项目打包,内存溢出报错报错描述CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory(内存溢出)原因分析报错中有句关键的话,CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory JavaScr
vue项目打包,内存溢出报错
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如何添加,请参考
https://segmentfault.com/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
1234567891011
解决方法二 修改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",
1
参考链接一
https://blog.csdn.net/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
参考链接二
.pc_relevant.none-task-blog-BlogCommendFromBaidu-17
参考链接二
https://segmentfault.com/a/1190000010437948
更多推荐
所有评论(0)