Nuxt项目启动或打包时,显示内存不足溢出问题解决方案

摘要:
大型Nuxt项目在后期会积累过多的模块和过多的静态资源,这将导致项目启动缓慢,启动和打包期间内存不足,无法成功。原因如下:当在Node中通过JavaScript使用内存时,您会发现只能使用部分内存。这个问题的主要原因是Node是基于V8构建的,所以Node中使用的JavaScript对象基本上是由V8本身分配和管理的。V8的内存管理机制足以用于浏览器的应用场景,并且可以满足前端页面的所有要求。

大型的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  ,限制一下内存即可

然后,正常启动项目或打包就可以了~~

嗯,就酱~~~

免责声明:文章转载自《Nuxt项目启动或打包时,显示内存不足溢出问题解决方案》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇简单粗暴方式解决H5移动端页面滚动的时候触发touchend事件003-Centos7.3下安装Jumpserver 1.0.0(支持windows组件)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Nodejs Express笔记

Express做服务器,主要考虑到可能存在的高并发,js写起来也并不麻烦,环境搭建也异常简单。开车~ 由于主要目的就是用于生产环境,所以肯定不能用高版本的Nodejs,选LTS,没错的。 一.安装 这里我的示例工程名称为:expressDemo 1.打开你的cmd,创建你的工程文件夹: mkdir expressDemo &&cd expr...

AI2(App Inventor 2)离线版服务器网络版

个人修改包括: 1.后台增加用户批量添加功能 https://gte.fsyz.net/node/1877 2.上传文件限制改为100M ,编译文件限制改为10M https://gte.fsyz.net/node/1876 3.登陆默认设置为中文 https://gte.fsyz.net/node/1875 4.增加nginx反向代理,支持php以及pa...

在Linux系统配置Nodejs环境的最简单步骤,部署多个thinkjs(nodejs)项目

发现一台服务器部署管理多个nodejs服务,可以采用二级域名weekly.mwcxs.top,也可以采用固定后缀www.mwcxs.top/weekly的方式,本文先从固定后缀的方式部署管理多个nodejs服务。 以下详细的介绍,以周报企业管理系统为例进行部署,欢迎fork和start,源码地址:https://github.com/saucxs/week...

RabbitMQ 把一个queue从一个node转移到另外一个node.

最近发现有个node上面的queues占用了太多的磁盘空间, 其他的两个node的磁盘的使用两还可以, 所以打算把其中的几个queue转移到另外的两个node上。 命令行的方式: rabbitmqctl set_policy --apply-to queues --priority 100 POLICY_NAME '^test_shavel_queue$'...

数据结构与算法80道

1. 把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。    10  /  6 14  / / 4 8 12 16  转换成双向链表 4=6=8=10=12=14=16。   首先我们定义的二元查找树 节点的数据结构如下:  struct BSTreeN...

Linux 安装elasticsearch、node.js、elasticsearch-head

前提:下载es的安装包 官网可以下载 es官网 安装elasticsearch 1 新建两个文件夹 一个存放安装文件,一个存放解压后的文件 mkdir -p /export/software //存放安装文件 mkdir -p /export/servers //存放解压后的文件 2 创建es用户 #使用root用户的操作 useradd es...