先描述下现象:vue项目在跑时偶尔出现webpack-dev-server服务停止,需要重新npm run dev.
1 | FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory |
- 报错信息说堆内存溢出(其实就是node内存溢出)
解决办法:
- 如果是run dev时报错,在package.json文件里的scripts字段的 ‘dev’ : node 后面加上 –max_old_space_size=4096 这里的4096单位是M也就是4G(具体的大小根据实际情况而定)
- 如果是在打包时 就在build后面加上面的内容
原因
- 首先项目在跑时其实用的是用的webpack-dev-server工具,是一个小型的Node.js Express 服务器。
- webpack在每次代码更改保存时都会进行编译然后实刷新页面得到最新的效果,但同时也会占用大量内存,也就是占用node内存。
- node是基于V8构建的,V8对内存的使用是有限制的(老64位系统约1.4G,32位约0.7G,新生代内存64位约32M,32系统下约为16M)在这种限制下,如果不小心触碰到这个界限,就会造成进程退出。