随着工作中的项目越来越大,每次修改后都要花费一点时间等待更新页面,最近经常出现内存溢出,项目报错停掉,重启后又可以正常使用,但是给项目开发造成了极大的困扰,浪费时间,项目进度缓慢,还会让人烦躁。

上网找了好多方法,百度上各种抄来抄去都是一个模板,还亲测无效:

网上互相抄袭的解决方案:

如果是run dev时报错,在package.json文件里的scripts字段的 ‘dev’ : node 后面加上-max_old_space_size=4096,这里的4096单位是M也就是4G(具体的大小根据实际情况而定);

如果是在打包时 就在项目package.json 文件里修改:“build”: “node 后面加上-max_old_space_size=4096

修改后的代码如下:

"dev": "node -max_old_space_size=4096 build/dev-server.js",
"build": "node -max_old_space_size=4096  build/build.js",



别人不知道,反正我是没效果,浪费时间;还是找了其他人的答案,亲测有效的,转载一下,以备后用;

亲测有效的方案:

问题产生原因:
查询后了解到是Node中通过JavaScript使用内存时只能使用部分内存(64位系统:1.4 GB,32位系统:0.7 GB),如果前端项目比较大,Webpack编译时就会占用很多的系统资源,一旦超出了V8引擎对Node默认的内存限制大小时,就会产生内存溢出的错误。

处理方式是:
在package.json中script下添加:

"scripts": {
    "fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit",
    ...
  },

接着执行 npm install cross-env --save--dev(目前这里只能使用npm)
以及 npm install increase-memory-limit --save--dev
如果安装失败则需要先删除掉项目的node_modules包
配置并安装成功后执行npm run fix-memory-limit这句,成功则会出现一下界面

企业微信截图_15948819267057.png

经测试不再出现溢出问题,在此作以记录;

转载自vue热更新失败,node内存溢出,JS stacktrace


千与千寻
50 声望2 粉丝

人生啊,有时候找对了队友很重要。