VITE打包时内存溢出问题解决 FATAL ERROR: Ineffective mark-compacts near heap limit

文章描述了在构建Vue3+Cesium项目时遇到的内存不足问题,尝试通过增加node最大内存和修改package.json配置来解决。作者提到,由于系统命令对双引号的不识别导致报错,最终成功解决了这个问题,但对内存溢出的原因仍然不明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

楼主也不知道怎么回事在编写Vue3+Cesium项目打包时就遇见了这个问题,然后根据百度到的资料说是node编译时内存不够需要手动提升内存,然后需要安装两个组件,相关博客链接我贴在下面:

https://blog.youkuaiyun.com/qq_43227958/article/details/123017935

安装完插件之后运行npm run build 还是不行,会报错,报错内容为:

'"node --max-old-space-size=4096"'不是内部或外部命令,也不是可运行的程序

这个的解决方法我也贴在下面:

https://www.cnblogs.com/fishmeng/p/15814808.html

如文章内容所讲,是因为系统命令不能识别双引号" "导致的,要么删除node_modules中bin文件夹下面的双引号,但是楼主感觉太麻烦了,而且万一再导致一个新bug,处理node_modules里面的东西可比处理自己项目中的东西麻烦的多,所以楼主选择了后面的方法,修改package.json文件中的配置项.

但是查询了网络上的资料都是用vue cli处理的因此楼主只能依样画葫芦自行修改vite的配置

在使用cli构建vue项目的时候,cli文件夹会在node_modules中的@vue文件夹下,但是用vite构建的项目之下并没有这个文件夹

所以我就把目光瞄向了@vitejs文件夹

 

展开一看仍然没有想要的东西 ,然后我就继续搜寻node_modules文件夹在最后发现了一个vite的文件夹,而且里面也有bin文件

于是我就效仿cli的解决方法把拓展内存语句加上,然后手动选定要执行的js文件,之后再运行npm run dev和bulid都是顺利的启动和打包

 注意,原本dev运行的是"vite",根据项目运行和编译的原理,vite的本意就是去寻找vite.js的,所以就不用在这个后面添加vite字段了,以上就是我针对vite项目内存溢出问题的解决,希望可以帮到你,另外,由于本人的项目并不大,所以至今不明白为何会导致内存溢出的问题(注:本人昨天下班之前把dev命令改成了serve命令跑了一下然后又改回了dev,不知道是不是这个原因)希望有大佬可以指正问题,让小弟从根源上杜绝这个问题的发生.

### 解决方案概述 对于 JavaScript 堆内存不足导致的致命错误 `FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed`,可以通过增加 Node.js 的最大旧生代空间大小来缓解此问题。具体方法如下: #### 使用全局工具提升内存限制 通过安装并使用 `increase-memory-limit` 工具能够有效提高构建过程中的可用内存量[^1]。 ```bash cnpm install -g increase-memory-limit ``` 执行上述命令后,在后续运行打包指令之前调用该工具即可自动调整环境变量以适应更高的内存需求。 #### 手动设置 V8 引擎的最大堆尺寸 另一种更为直接的方式是在启动 Node.js 进程指定更大的老年代空间大小参数。例如针对基于 Vite 构建的应用程序,原始打包命令为 `vite build --mode production` 可修改成带有额外选项的形式[^2]: ```bash node --max_old_space_size=4096 node_modules/vite/bin/vite.js build --mode production ``` 这里的关键在于附加了 `--max_old_space_size=4096` 参数给到 Node.js 实例,意味着允许其最多占用 4GB 的 RAM 来完成编译工作。 #### 配置 Webpack 或其他框架特定配置文件 如果项目依赖于 Webpack,则可以在 webpack.config.js 中加入类似的优化措施: ```javascript process.env.NODE_OPTIONS = '--max-old-space-size=4096'; module.exports = { // 其他配置项... }; ``` 这样做可以让每次启动 Webpack 开发服务器或是生产模式下的打包都默认应用较高的内存上限设定。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值