大型的Nuxt项目,后期会积攒太多模块和太多静态资源,这样会导致项目启动缓慢,启动和打包时候也会出现内存不足,无法成功的情况,导致这样的原因如下:
在Node中通过JavaScript使用内存时就会发现只能使用部分内存(64位系统下约为1.4 GB,32位系统下约为0.7 GB)。在这样的限制下,将会导致Node无法直接操作大内存对象,比如无法将一个2 GB的文件读入内存中进行字符串分析处理,即使物理内存有32 GB。这样在单个Node进程的情况下,计算机的内存资源无法得到充足的使用。
造成这个问题的主要原因在于Node基于V8构建,所以在Node中使用的JavaScript对象基本上都是通过V8自己的方式来进行分配和管理的。V8的这套内存管理机制在浏览器的应用场景下使用起来绰绰有余,足以胜任前端页面中的所有需求。但在Node中,这却限制了开发者随心所欲使用大内存的想法。
尽管在服务器端操作大内存也不是常见的需求场景,但有了限制之后,我们的行为就如同带着镣铐跳舞,如果在实际的应用中不小心触碰到这个界限,会造成进程退出。
(以上摘自 https://blog.csdn.net/gtLBTNq9mr3/article/details/90709000)
下面来讲一下怎么处理:
1.使用最新版node环境
2.如果最新版node也不行的话,可以使用通过package.json安装一些依赖,来限制内存的方法,如下:
"increase-memory-limit": "^1.0.7",
"cross-env": "^7.0.2",
安装完这两个依赖以后,在script里添加一下命令
"fix-memory-limit": "cross-env LIMIT=8096 increase-memory-limit"
然后直接运行一下 npm run fix-memory-limit ,限制一下内存即可
然后,正常启动项目或打包就可以了~~
嗯,就酱~~~