vite打包失败 - out of memory

在做项目时,随着需求的不断增加,我们的代码文件会越来越大,但是在打包时,在 Node 中通过 JavaScript 使用内存的大小却是有限制的。于是,今天打算部署代码时,报错了:

复制代码
<--- JS stacktrace --->

==== JS stack trace =========================================

0: ExitFrame [pc: 00007FF69790ABBD]
Security context: 0x01e6a86408d1
1: decode(aka decode) [000002AD02F874D1] [E:\vite-template\node_modules_rollup@2.40.0@rollup\dist\shared\rollup.js:~133] [pc=0000039464A55451](this=0x037824a004b1 ,0x017863480119 <Very long string[1502653]>)
2: decodedSourcemap(aka decodedSourcemap) [000002AD02F8A979] [E:\vite-template\node_modules_rollup@2.40.0@rollup\dist\shared\roll...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

解决方案

复制代码
node --max_old_space_size=1024000 ./node_modules/vite/bin/vite.js build

在网上找了以下解决方案:

  1. 升级node版本(未尝试:非必要,不升级,免得带来不兼容问题)

  2. 修改vite.config.ts里面的配置项:sourcemap: false。但是有时我们可能想在部署到dev环境里进行调试(有些场景在部署后才能发现),那关闭了sourcemap,就无法在部署环境进行调试了,也不推荐。

  3. 找了段修改的实例(并不起作用,cross-env找不到,即使安装了也没起作用,不知为何):

    "scripts": {
    "dev": "vite",
    "build": "cross-env NODE_OPTIONS=--max_old_space_size=1024000 vite build",
    "preview": "vite preview"
    }

    // 改进版也不起作用
    "build": "set NODE_OPTIONS= --max_old_space_size=10240 && vite build",

  4. vite下面的issue讨论里面发现了点线索,如下(亲测可用):

    node --max_old_space_size=1024000 ./node_modules/vite/bin/vite.js build

https://github.com/vitejs/vite/issues/2433#issuecomment-792914871https://github.com/vitejs/vite/issues/2433#issuecomment-1159005523

既然原因找到了(node 中使用内存受限),自己的问题也解决了(放宽该限制),探索到此为止。

参考地址:https://github.com/vitejs/vite/issues/2433https://blog.csdn.net/sigoyis/article/details/108005283https://blog.csdn.net/weixin_38883338/article/details/109346148#:~:text=FATAL%20ERROR%3A%20Ineffective%20mark-compacts%20near%20heap%20limit%20Allocation,%E5%8E%9F%E5%9B%A0%E6%98%AF%20JavaScript%E5%A0%86%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3%EF%BC%8CNode%20%E6%98%AF%E5%9F%BA%E4%BA%8EV8%E5%BC%95%E6%93%8E%EF%BC%8C%E5%9C%A8%20Node%20%E4%B8%AD%E9%80%9A%E8%BF%87%20JavaScript%20%E4%BD%BF%E7%94%A8%E5%86%85%E5%AD%98%E6%97%B6%E5%8F%AA%E8%83%BD%E4%BD%BF%E7%94%A8%E9%83%A8%E5%88%86%E5%86%85%E5%AD%98%EF%BC%8864%E4%BD%8D%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%BA%A6%E4%B8%BA1.4%20GB%EF%BC%89%EF%BC%8C%E5%A6%82%E6%9E%9C%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3%EF%BC%8C%E5%8F%AF%E4%BB%A5%E7%94%A8%E4%B8%8B%E9%9D%A2%E6%96%B9%E6%B3%95%E6%9D%A5%E6%94%BE%E5%AE%BDV8%E9%BB%98%E8%AE%A4%E7%9A%84%E5%86%85%E5%AD%98%E9%99%90%E5%88%B6%E3%80%82

相关推荐
31535669132 小时前
DeepSeek Harness 发布后,我没急着跑 Demo,先把 `.agents/` 翻了一遍
前端·后端·github
名字还没想好☜2 小时前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
学习zhao极致it2 小时前
2020全新React教程全家桶实战redux+antd+React Hooks前端js视频
前端
用户921080262862 小时前
Bubble 消息操作区改造:复制、重新生成和反馈
前端
LEE2 小时前
AI Agent 都在疯狂加功能,它说:我全砍了
前端·后端
张清悠2 小时前
用 TRAE Work 把 PRD + 设计稿注释,整理成 20 分钟可排期前端任务清单
前端
Brown.alexis3 小时前
es6知识点5-自备使用
前端·javascript·es6
杨利杰YJlio3 小时前
KB5121003更新详解:安全启动证书、AI组件、资源管理器与安装验证
前端·javascript·后端
紫菜猫一只3 小时前
Vue 3 与 React 常用写法对比
前端
jinggongszh3 小时前
使用AI协同开发产品条码规则功能——从“理解方案、原型、接口文档”到“落地真实前端代码”
前端·人工智能·mes系统·mes工程架构