前言

最近起公司的前端项目又爆内存了,忘记之前是怎么配置的,这篇博客用于备忘。

问题描述

一个很臃肿的前端多模块项目,对应后端的多个 springboot 模块项目,前端每次启动都会对所有的包进行打包,影响启动速度,内存也很容易爆掉。

报错如下:

1
2
3
4
(node:28820) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 upgrade listeners added to [Server]. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

解决方案

1、使用 npm 安装插件

1
npm install -g increase-memory-limit

2、项目启动前,在终端运行对应命令

1
2
3
increase-memory-limit
# 或者下面这句
increase-memory-limit.cmd

3、在项目的 vue.config.js 中注释掉对应的内存限制行

1
2
3
console.log("CPU 数量", require('os').cpus().length)
console.log(require('v8').getHeapStatistics())
// args[0].memoryLimit = 4096; 这行限制注释掉

4、根据统一认证登录和单点登录的需要,修改 loginType

5、运行项目

1
2
3
npm run serve
# 或者
npm run dev

参考链接